成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

DrizzleX / 2473人閱讀

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

[] == false; //為True
!![] == false; //為False
一、[] == false為True 第一步 轉(zhuǎn)成[] == 0

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

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

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

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

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

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

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

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

根據(jù) MDN Web 文檔-運算符優(yōu)先級:[https://developer.mozilla.org...
](https://developer.mozilla.org...

!的優(yōu)先級為16 ,==的優(yōu)先級為10!的優(yōu)先級更高,所以先運行!![]

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

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

如果操作數(shù)是一個對象,返回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 ..

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/98062.html

相關文章

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

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

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

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

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

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

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

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

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

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

    Steve_Wang_ 評論0 收藏0

發(fā)表評論

0條評論

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