js中的 和 的區別

2021-07-22 22:14:04 字數 1661 閱讀 2352

我們一般將兩個量進行比較時,==用的比較多,今天看到乙個小題是:undefined和null是否相等,console.log(undefined==null)的值

為什麼??

有人說:ecmascript認為undefined是null派生出來的,所以輸出為true。

也有人說:

1、null表示"沒有物件",即該處不應該有值。典型用法是:

(1) 作為函式的引數,表示該函式的引數不是物件。

(2) 作為物件原型鏈的終點。

2、undefined表示"缺少值",就是此處應該有乙個值,但是還沒有定義。典型用法是:

(1)變數被宣告了,但沒有賦值時,就等於undefined。

(2) 呼叫函式時,應該提供的引數沒有提供,該引數等於undefined。

(3)物件沒有賦值的屬性,該屬性的值為undefined。

(4)函式沒有返回值時,預設返回undefined。

然後看到拓展了一下的機智網友:那麼console.log(undefined===null)的值為什麼??

console.log(undefined===null);                        //false ,兩者的所屬的資料型別不一致

然後stop,言歸正傳 ---------------------- js中的==和===的區別???

==用於一般比較,===用於嚴格比較,==在比較的時候可以轉換資料型別,===嚴格比較,只要型別不匹配就返回flase。

舉例說明:

"1" == true

型別不同,"=="將先做型別轉換,把true轉換為1,即為 "1" == 1;

此時,型別仍不同,繼續進行型別轉換,把"1"轉換為1,即為 1 == 1;

此時,"==" 左右兩邊的型別都為數值型,比較成功!

如果比較:"1" === true 左側為字元型,右側為bool布林型,左右兩側型別不同,結果為false;

如果比較:"1" === 1 左側為字元型,右側為int數值型,左右兩側型別不同,結果為false;

如果比較: 1 === 1 左側為int數值型,右側為int數值型,左右兩側型別相同,數值大小也相同,結果為true;

如果比較: 1 === 2 左側為int數值型,右側為int數值型,左右兩側型別相同,但數值大小不同,結果為false;

簡而言之"==" 只要求值相等; "===" 要求值和型別都相等。

JS中的 和 的區別

簡單來說 代表相同,代表嚴格相同。這麼理解 當 進行比較時候 先檢查兩個運算元資料型別,如果相同,則進行 比較,如果不同,則進行一次型別轉換,轉換成相同型別後再進行比較,而 比較時,如果型別不同,直接就是false。雙等號 的比較過程 如果兩個值型別相同,再進行三個等號 的比較 在轉換不同的資料型別...

JS中的! ! 的用法和區別。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 var num 1 var str 1 var test 1 test num true 相同型別 相同值 test num true 相同型別 相同值 test num false test與nu...

JS中的! ! 的用法和區別。

js 與 的區別 1 對於string,number等基礎型別,和 是有區別的 1 不同型別間比較,之比較 轉化成同一型別後的值 看 值 是否相等,如果型別不同,其結果就是不等 2 同型別比較,直接進行 值 比較,兩者結果一樣 2 對於array,object等高階型別,和 是沒有區別的 進行 指標...