盤點js中那些詭異的結果

2021-10-18 05:56:20 字數 1308 閱讀 5474

本文中涉及到的知識,很多都是比較冷門,在實際編碼中你可能用不到,但保不准有些面試官可能會問到,或者你可以拿來zb。

1. typeof null

這個是歷史遺留的bug,typeof null 值為"object"

2. null == undefined

值為true

3. -0 === +0

值為true,但是object.is(-0, +0)為false

4. infinity * 0

值為nan,類似的還有infinity / infinity = nan,infinity % 0 = nan,infinity + (-infinity) = nan,

5. 『a』 < 3

值為false,這是因為字串和數字作比較時,字串會轉化為數值,而'a'轉化後的值為nan,而nan < 3的值為false,但你以為這樣'a' >= 3就為true了嗎?no,'a' >= 3也為false,這是因為有乙個規則,即任何關係操作符在涉及比較nan時都返回false。

6. nan == nan

值為false,nan不是表示某乙個具體的數。

7. window.isnan != number.isnan

值為true,window.isnan在早期判斷時存在乙個bug,比如window.isnan('a') = true,後來在es6中修復了這個bug,number.isnan('a') = false。

8. typeof function.prototype

值為"function",因為function.prototype是原生方法。

9. array.isarray(array.prototype)

值為true,陣列的原型也是陣列

10. function fun () {}; fun instanceof function

值為true,那fun instanceof object呢?值也為true。關於object和function的前世今生,後面會再寫一篇文章來說明。

11. math.max('a', 'b')

值為nan

12. == !

值為true,這個題目有一次在筆試的時候被考到過。分析一下,這裡涉及到隱式型別轉換,首先!=false,變為 == false,如果有一運算元為布林值時,將其轉化為number,則變為 == 0,然後將左邊也轉換為number,左邊是物件,先呼叫valueof方法,轉換的值為,不是原始值,所以繼續呼叫tostring方法,得到的值為空字串"",轉換為number為0,最終得到0 == 0。

期貨反向跟單 交易中那些詭異的巧合

臨時有事耽誤了一天,所以周四要碼的字改到了周五,抱歉抱歉。在我們這幾年做反跟單的過程中,發生了很多玄乎的事情,接下來就在今天的文章中給大家分享一下。說真的,有時候就是這麼詭異,就比如說我們做反跟單的時候,突然有一天,乙個經常虧損的盤手遲到了,恰好遲到的時間不算太久,我們的現場管理仍然讓他正常交易正常...

盤點機器學習中那些神奇的損失函式

盤點機器學習中那些神奇的損失函式 我最近在學習r語言,但是估r語言我應該沒能跟sas一樣玩那麼好。今天來更新在機器學習中的一些專業術語,例如一些損失函式,正則化,核函式是什麼東西。損失函式 損失函式是用來衡量模型的效能的,通過 值和真實值之間的一些計算,得出的乙個值,這個值在模型擬合的時候是為了告訴...

盤點js學習中,遇到的各種疑問

檢視js方法的相容性 一 關於data 1 命名不要包含大寫字母 第一種 可行 第二種 不可行 data 中不要包含大寫字母 2 會變動的data data name 不能改變頁面上顯示的值,請使用attr data 進行改變。需要注意的是,如果獲取的值是數字,attr data 獲取的值是stri...