「知識點」JavaScript 中11個有趣的事實

1、 NaN 是一個 number 類型

NaN是一個number類型。 而且,NaN不等於它自己。 實際上NaN不等於任何東西,驗證一個變量是否是NaN可以使用isNaN()方法來判斷。

> typeof(NaN)
"number"

> NaN === NaN
false

2 、null 是一個對象
null是一個對象。 聽起來奇怪! 對? 但這是事實。

> typeof(null)
"object"

在這種情況下,null表示沒有值。因此,null不應該是Object的實例。

> null instanceof Object
false    

3 、undefined 可以被定義
undefined不是 JS 中的保留關鍵字, 你可以爲其指定值也不會報錯,如果聲明一個變量沒有賦值,默認爲undefined

> var some_var;
undefined
> some_var == undefined
true
> undefined = 'i am undefined'   

4 0.1 + 0.2 不等於 to 0.3
在JavaScript中,0.1 +0.2 == 0.3返回false。 事實是,javascript 將浮點數存儲爲二進制。

> 0.1 + 0.2
0.30000000000000004
> 0.1 + 0.2 == 0.3
false 

5、 Math.max() 比 Math.min() 小

Math.max() > Math.min()返回false的事實看起來是錯誤的,但實際上它是正確的。

如果沒有參數傳給min()或max(),那麼它將返回以下值。

> Math.max()
-Infinity
> Math.min()
Infinity    

6 、018 - 045 = -19
在JavaScript中,前綴0會把任何數字轉換成八進制。但是,八進制中不使用8,任何包含8的數字都將被無聲地轉換爲常規的十進制數字。

> 018 - 045
-19   

因此,018-019實際上等於十進制表達式18-37,因爲045是八進制,但018是十進制。

7、 函數可以自執行

只需創建一個函數,並在調用其他函數時立即調用它,並使用()語法

> (function()  { console.log('I am self executing');  })();
I am self executing    

8 括號的位置問題

`return` 語句後面沒有東西的時候它什麼都不返回。 實際上,JS 後面 `return` 添加一個 `;`。

> function foo() {
   return
   {
      foo: 'bar'
   }
}
> foo(); 
undefined

> function foo() {
   return {
      foo: 'bar'
   }
}
> foo(); 
{foo: "bar"}

9 、沒有整數數據類型
在 JS 中,沒有int(整數)數據類型。 所有數字均爲Number類型。 實際上它將int數的浮點值存儲在內存上。

10、 sort() 函數自動類型轉換
sort()函數自動將值轉換爲字符串,這就會導致奇怪的事情發生。

> [1,5,20,10].sort()
(4) [1, 10, 20, 5]

但是,它可以通過比較來解決:

> [1,5,20,10].sort(function(a, b){return a - b});
(4) [1, 5, 10, 20]

11、 數組和對象的和

> !+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]
9
> {} + []
0
> [] + {}
"[object Object]"
> [] + []
""
> {} + {}
"[object Object][object Object]"
> {} + [] == [] + {}
true
> !+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]
9
> {} + []
0
> [] + {}
"[object Object]"
> [] + []
""
> {} + {}
"[object Object][object Object]"
> {} + [] == [] + {}
true

點此鏈接領取:自己是一名從事了多年開發的web前端老程序員,今年年初我花了一個月整理了一份最適合2020年學習的前端學習乾貨,想分享給每一位喜歡前端的小夥伴

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章