JS 中有趣的事實

阿里雲最近在作活動,低至2折,有興趣能夠看看:
https://promotion.aliyun.com/...

爲了保證的可讀性,本文采用意譯而非直譯。javascript

使用 JS 有不少有趣的地方。儘管工程師們天天都在與之打交道,但仍有一些語言沒有被開發出來。本廣將介紹一些你可能想不到的JS特性。html

NaN 是一個 number 類型

NaN是一個 number 類型。 並且,NaN 不等於它本身。 實際上NaN不等於任何東西,驗證一個變量是不是 NaN 能夠使用 isNaN() 方法來判斷。前端

> typeof(NaN)
"number"

> NaN === NaN
false

null 是一個對象

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

> typeof(null)
"object"

在這種狀況下,null表示沒有值。所以,null不該該是Object的實例。git

> null instanceof Object
false

undefined 能夠被定義

undefined不是 JS 中的保留關鍵字, 你能夠爲其指定值也不會報錯,若是聲明一個變量沒有賦值,默認爲 undefinedgithub

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

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

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

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

若是沒有參數傳給min()max(),那麼它將返回如下值。學習

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

018 - 045 = -19

在JavaScript中,前綴0會把任何數字轉換成八進制。可是,八進制中不使用8,任何包含8的數字都將被無聲地轉換爲常規的十進制數字。阿里雲

> 018 - 045
-19

所以,018-017實際上等於十進制表達式18-37,由於045是八進制,但018是十進制。

函數能夠自執行

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

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

括號的位置問題

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

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

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

沒有整數數據類型

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

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, 10, 20, 5]

數組和對象的和

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

交流

乾貨系列文章彙總以下,以爲不錯點個Star,歡迎 加羣 互相學習。

https://github.com/qq44924588...

我是小智,公衆號「大遷世界」做者,對前端技術保持學習愛好者。我會常常分享本身所學所看的乾貨,在進階的路上,共勉!

關注公衆號,後臺回覆福利,便可看到福利,你懂的。

clipboard.png

相關文章
相關標籤/搜索