国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js雙等號探索(三): [] == false為True,而!![] == false為False

DrizzleX / 2468人閱讀

摘要:所以為為第二步轉成根據文檔比較操作符如果一個對象與數字或字符串相比較,會嘗試返回對象的默認值。嘗試將數字字面量轉換為數字類型的值。

[] == false; //為True
!![] == false; //為False
一、[] == false為True 第一步 轉成[] == 0

根據 MDN Web 文檔-比較操作符:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Comparison_Operators

如果其中一個操作數為布爾類型,那么布爾操作數如果為true,那么會轉換為1,如果為false,會轉換為整數0,即0。
所以![]false0.
[] == 0
第二步 轉成"" == 0

根據 MDN Web 文檔-比較操作符:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Comparison_Operators

如果一個對象與數字或字符串相比較,JavaScript會嘗試返回對象的默認值。操作符會嘗試通過方法valueOf和toString將對象轉換為其原始值(一個字符串或數字類型的值)。
所以[].valueOf().toString()""
"" == 0
第三步 轉成0 == 0

根據 MDN Web 文檔-比較操作符:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Comparison_Operators

當比較數字和字符串時,字符串會轉換成數字值。 JavaScript 嘗試將數字字面量轉換為數字類型的值。
Number("")0
0 == 0

最后0==0True,所以[] == falseTure

二、!![] == false為False 第一步 先運行!![]

根據 MDN Web 文檔-運算符優先級:[https://developer.mozilla.org...
](https://developer.mozilla.org...

!的優先級為16 ,==的優先級為10!的優先級更高,所以先運行!![]

!![]
第二步 先運行!false

根據 《Javascript高級程序設計》這本書第44頁中邏輯非的說明:

如果操作數是一個對象,返回false

所以運行!false,為True

!false //為True

最后true == falseFalse,所以!![] == falseFalse

[] == falseTrue!![] == falseFalse

其他鏈接

https://raoenhui.github.io/js/2018/09/22/compare1/

https://raoenhui.github.io/js/2018/09/23/compare2/

https://raoenhui.github.io/js/2018/09/28/compare3/

Happy coding ..

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/98062.html

相關文章

  • js等號探索(一): [] == ![]Ture ?

    摘要:所以為第四步轉成根據文檔比較操作符當比較數字和字符串時,字符串會轉換成數字值。嘗試將數字字面量轉換為數字類型的值。最后位所以為其他鏈接 [] == ![] //為True 第一步 轉成[] == false 根據 MDN Web 文檔-運算符優先級:[https://developer.mozilla.org...](https://developer.mozilla.org...s...

    CollinPeng 評論0 收藏0
  • js等號探索(二): a==3&&a==4 true

    摘要:前言為是可以實現的。在中,非對象參數將被視為一個凍結的普通對象,因此會返回。注意所以一定要是對象,如果是非對象的其他基本類型如,,被視為凍結對象,不能重寫,則不起效果。第四步為這時已經為,運行返回值也為。最后為如上所示為,為,則為其他鏈接 前言 a==3 && a==4為True是可以實現的。具體代碼如下所示: let a=[]; var x=3; a.valueOf=()=>{ ...

    cheng10 評論0 收藏0
  • 【前端面試】變量和類型計算

    摘要:題目使用能得到哪些類型和的選擇中有哪些內置函數變量按存儲方式分為哪些類型,并描述其特點如何理解知識點值類型和引用類型值類型引用類型對象,數組,函數值類型直接把值存儲在堆中,把賦值給在內存中是又給開辟了一塊新的空間,存儲了同樣的值。 1.題目 1.JS使用typeof能得到哪些類型 === 和 == 的選擇 JS中有哪些內置函數 JS變量按存儲方式分為哪些類型,并描述其特點 如何理解J...

    DoINsiSt 評論0 收藏0
  • javascript變量運算符詳解

    摘要:代碼示例等號檢查,類型轉換后返回全等檢查,由于時類型,時類型,類型不同,返回關系運算符關系運算符執行的是比較運算,通常用于判斷兩個變量哪個大哪個小關系運算符都返回一個布爾值。邏輯或運輸符用雙豎線表示。 1.運算符 JavaScript中常見的運算符包含:賦值運算符、算數運算符、等性運算符、關系運算符、條件運算符、布爾運算符、邏輯運算符…… 1.賦值運算符 = 賦值運算符=,用于給某個變...

    Sourcelink 評論0 收藏0
  • Javascripit類型轉換比較那點事兒,等號(==)

    摘要:同理,若為,返回的結果若為或者,且為,返回的結果。同理,若為或者,且為,返回的結果是對象轉換基本類型的方法。看個例子根據上述規則來解析為,上式為第條上式為第條上式為,上式為第條上式為 前不久因為一個項目設計的問題,煩心了好幾天,為了不留坑擁抱強類型語言特點,還是選擇了===作為數據判斷是否相等,對于==今天來探究一下貓膩(弱類型的JavaScript的坑真的太多了,typescript...

    Steve_Wang_ 評論0 收藏0

發表評論

0條評論

DrizzleX

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<