1 NaN 是一個 number 類型
NaN是一個number類型。 而且,NaN不等於它自己。 實際上NaN不等於任何東西,驗證一個變量是否是NaN可以使用isNaN()方法來判斷。
<code>> typeof(NaN)"number"> NaN === NaNfalse/<code>
2 null 是一個對象
null是一個對象。 聽起來奇怪! 對? 但這是事實。
<code>> typeof(null)"object"/<code>
在這種情況下,null表示沒有值。因此,null不應該是Object的實例。
<code>> null instanceof Objectfalse /<code>
我自己是一名從事了多年開發的web前端老程序員,目前辭職在做自己的web前端私人定製課程,去年我花了一個月整理了一份最適合2019年學習的web前端學習乾貨,各種框架都有整理,送給每一位前端小夥伴,想要獲取的可以關注我的頭條號並在後臺私信我:前端,即可免費獲取。
3 undefined 可以被定義
undefined不是 JS 中的保留關鍵字, 你可以為其指定值也不會報錯,如果聲明一個變量沒有賦值,默認為undefined
<code>> var some_var;undefined> some_var == undefinedtrue> undefined = 'i am undefined' /<code>
4 0.1 + 0.2 不等於 to 0.3
在JavaScript中,0.1 +0.2 == 0.3返回false。 事實是,javascript 將浮點數存儲為二進制。
<code>> 0.1 + 0.20.30000000000000004> 0.1 + 0.2 == 0.3false /<code>
5 Math.max() 比 Math.min() 小
Math.max() > Math.min()返回false的事實看起來是錯誤的,但實際上它是正確的。
如果沒有參數傳給min()或max(),那麼它將返回以下值。
<code>> Math.max()-Infinity> Math.min()Infinity /<code>
6 018 - 045 = -19
在JavaScript中,前綴0會把任何數字轉換成八進制。但是,八進制中不使用8,任何包含8的數字都將被無聲地轉換為常規的十進制數字。
<code>> 018 - 045-19 /<code>
因此,018-019實際上等於十進制表達式18-37,因為045是八進制,但018是十進制。
7 函數可以自執行
只需創建一個函數,並在調用其他函數時立即調用它,並使用()語法
<code>> (function() { console.log('I am self executing'); })();I am self executing /<code>
8 括號的位置問題
<code>`return` 語句後面沒有東西的時候它什麼都不返回。 實際上,JS 後面 `return` 添加一個 `;`。> function foo() { return { foo: 'bar' }}> foo(); undefined> function foo() { return { foo: 'bar' }}> foo(); {foo: "bar"}/<code>
9 沒有整數數據類型
在 JS 中,沒有int(整數)數據類型。 所有數字均為Number類型。 實際上它將int數的浮點值存儲在內存上。
10 sort() 函數自動類型轉換
sort()函數自動將值轉換為字符串,這就會導致奇怪的事情發生。
<code>> [1,5,20,10].sort()(4) [1, 10, 20, 5]/<code>
但是,它可以通過比較來解決:
<code>> [1,5,20,10].sort(function(a, b){return a - b});(4) [1, 5, 10, 20]/<code>
11 數組和對象的和
<code>> !+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]9> {} + []0> [] + {}"[object Object]"> [] + []""> {} + {}"[object Object][object Object]"> {} + [] == [] + {}true/<code>
<code>> !+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+!![]9> {} + []0> [] + {}"[object Object]"> [] + []""> {} + {}"[object Object][object Object]"> {} + [] == [] + {}true/<code>
原文鏈接:https://zhuanlan.zhihu.com/p/75428509
閱讀更多 小白沖沖沖沖 的文章
關鍵字: JavaScript 事實 有趣