<kbd id="9plqc"><label id="9plqc"></label></kbd>

        <th id="9plqc"></th>
        1. <center id="9plqc"><video id="9plqc"></video></center>
          <sub id="9plqc"><form id="9plqc"><pre id="9plqc"></pre></form></sub>
          <nav id="9plqc"><form id="9plqc"><legend id="9plqc"></legend></form></nav>
          JavaScript中 !,!!,!!!(一個(gè),兩個(gè),三個(gè)感嘆號(hào))的含義 您所在的位置:網(wǎng)站首頁 屬雞今年怎樣破小人 JavaScript中 !,!!,!!!(一個(gè),兩個(gè),三個(gè)感嘆號(hào))的含義

          JavaScript中 !,!!,!!!(一個(gè),兩個(gè),三個(gè)感嘆號(hào))的含義

          2025-02-25 17:26| 來源: 網(wǎng)絡(luò)整理| 查看: 265

          參考文章 :https://blog.csdn.net/buppt/article/details/77726809,lx_1024 js一個(gè)兩個(gè)三個(gè)感嘆號(hào)的區(qū)別

          今天寫React時(shí)判斷一個(gè)時(shí)間組件的傳值是否為空數(shù)據(jù) [ ] 時(shí),用 !! 來判斷的,然并卵,并沒有起到判斷的作用,于是就找資源學(xué)習(xí)一下? js 的 ! (感嘆號(hào)) 到底怎么用,有什么含義,順便寫篇文章記錄一下

          js?中的?!?的含義:js 中,! 表示運(yùn)算符“非”,如果變量不是布爾類型,會(huì)將變量自動(dòng)轉(zhuǎn)化為布爾類型再取非,!! ( ?兩個(gè)感嘆號(hào)),就可以將變量轉(zhuǎn)化為對應(yīng)布爾值,!!!(三個(gè)感嘆號(hào))沒有什么意義,和一個(gè)感嘆號(hào)的效果是一樣的。一般他們認(rèn)為 !! 表示將一個(gè)變量轉(zhuǎn)為boolean型,再加一個(gè)!是對boolean型取反,和 !false 或者 !true 一樣。

          那么,哪些值轉(zhuǎn)換成布爾值為true呢 ?以及 在 !,!!,!!!運(yùn)算后的值又是什么樣的

          我們先定義幾個(gè)函數(shù):

          testObjISTrueOrFalse: function(obj) { this.trueOrFalse(obj) this.trueOrFalseOfOne(obj) this.trueOrFalseOfTwo(obj) this.trueOrFalseOfThree(obj) }, trueOrFalse: function(obj) { if (obj) { console.log(obj + '_trueOrFalse', 'true') } else { console.log(obj + '_trueOrFalse', 'false') } }, trueOrFalseOfOne: function(obj) { console.log(obj + '_trueOrFalseOfOne', !obj) }, trueOrFalseOfTwo: function(obj) { console.log(obj + '_trueOrFalseOfTwo', !!obj) }, trueOrFalseOfThree: function(obj) { console.log(obj + '_trueOrFalseOfThree', !!!obj) }

          依次測試?undefined,null,空字符串,負(fù)0,正0,不確定數(shù)值,布爾值false,布爾值true,字符串0,數(shù)字1,數(shù)字無窮大,字符串true,字符串false,空數(shù)組,空對象,函數(shù)

          var arr = [undefined, null, '', -0, 0, NaN, false, true, '0', 1, Infinity, 'true','false', [], {}, function() {}] for (var i = 0; i < arr.length; i++) { this.testObjISTrueOrFalse(arr[i]) }

          測試結(jié)果如下:

          undefined_trueOrFalse false undefined_trueOrFalseOfOne true undefined_trueOrFalseOfTwo false undefined_trueOrFalseOfThree true null_trueOrFalse false null_trueOrFalseOfOne true null_trueOrFalseOfTwo false null_trueOrFalseOfThree true _trueOrFalse false _trueOrFalseOfOne true _trueOrFalseOfTwo false _trueOrFalseOfThree true 0_trueOrFalse false 0_trueOrFalseOfOne true 0_trueOrFalseOfTwo false 0_trueOrFalseOfThree true 0_trueOrFalse false 0_trueOrFalseOfOne true 0_trueOrFalseOfTwo false 0_trueOrFalseOfThree true NaN_trueOrFalse false NaN_trueOrFalseOfOne true NaN_trueOrFalseOfTwo false NaN_trueOrFalseOfThree true false_trueOrFalse false false_trueOrFalseOfOne true false_trueOrFalseOfTwo false false_trueOrFalseOfThree true true_trueOrFalse true true_trueOrFalseOfOne false true_trueOrFalseOfTwo true true_trueOrFalseOfThree false 0_trueOrFalse true 0_trueOrFalseOfOne false 0_trueOrFalseOfTwo true 0_trueOrFalseOfThree false 1_trueOrFalse true 1_trueOrFalseOfOne false 1_trueOrFalseOfTwo true 1_trueOrFalseOfThree false Infinity_trueOrFalse true Infinity_trueOrFalseOfOne false Infinity_trueOrFalseOfTwo true Infinity_trueOrFalseOfThree false true_trueOrFalse true true_trueOrFalseOfOne false true_trueOrFalseOfTwo true true_trueOrFalseOfThree false false_trueOrFalse true false_trueOrFalseOfOne false false_trueOrFalseOfTwo true false_trueOrFalseOfThree false _trueOrFalse true _trueOrFalseOfOne false _trueOrFalseOfTwo true _trueOrFalseOfThree false [object Object]_trueOrFalse true [object Object]_trueOrFalseOfOne false [object Object]_trueOrFalseOfTwo true [object Object]_trueOrFalseOfThree false function () {}_trueOrFalse true function () {}_trueOrFalseOfOne false function () {}_trueOrFalseOfTwo true function () {}_trueOrFalseOfThree false

          可以看到前面7個(gè)值都是false,?后面9個(gè)值都是true

          undefined 和 null 為 false,任意數(shù)組,對象,函數(shù)(函數(shù)是特殊的對象)都轉(zhuǎn)化為真,即使是空數(shù)組,空對象。

          空字符串為false,非空字符串為true。

          數(shù)值正負(fù)0,不確定值為false,其它為true , 無窮大也是 true。

          字符串"0"?和 數(shù)值0?可以相互轉(zhuǎn)換,但它們轉(zhuǎn)換為不同的布爾值,即0可轉(zhuǎn)換為"0″,"0″可轉(zhuǎn)換為true,但 0 卻轉(zhuǎn)換為false,可見Javascript中類型轉(zhuǎn)換不具有傳遞性。

          一個(gè)更有趣的現(xiàn)象是布爾值false會(huì)轉(zhuǎn)化為字符串”false”,而字符串”false”卻轉(zhuǎn)換為布爾值true,測試結(jié)果也可看出,代碼就參考備注的第一個(gè)文章博主的吧

          document.write(new String(false)); document.write(new Boolean("false"));

          結(jié)果為 :?false? , true

          如果將對象用來作為條件表達(dá)式判斷條件,不需要使用!!進(jìn)行轉(zhuǎn)換,Javascript會(huì)自動(dòng)轉(zhuǎn)換,(還是要注意不同對象轉(zhuǎn)換的結(jié)果會(huì)有一點(diǎn)理解上的偏差)

          ?



          【本文地址】

          公司簡介

          聯(lián)系我們

          今日新聞

          推薦新聞

          專題文章
            CopyRight 2018-2019 實(shí)驗(yàn)室設(shè)備網(wǎng) 版權(quán)所有
            黄色免费网站在线看,韩国精品在线观看,韩国美女一区二区,99国产热 昌乐县| 宜君县| 桑日县| 芜湖市| 汾西县| 南漳县| 周至县| 祥云县| 石河子市| 包头市| 彭泽县| 衡东县| 东至县| 新建县| 久治县| 安陆市| 石河子市| 西平县| 公主岭市| 搜索| 恩平市| 石柱| 分宜县| 襄城县| 工布江达县| 前郭尔| 海阳市| 壤塘县| 蕲春县| 聂荣县| 融水| 辽阳市| 诸暨市| 安徽省| 吉木萨尔县| 临澧县| 安化县| 永济市| 阿拉尔市| 广安市| 宣城市| http://444 http://444 http://444 http://444 http://444 http://444