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

資訊專欄INFORMATION COLUMN

javascript -- == vs ===

BothEyes1993 / 1642人閱讀

摘要:判斷一個值是否是,只能用來判斷如果兩個都是字符串,每個位置的字符都一樣,那么相等否則不相等。如果一個是字符串,一個是數(shù)值,把字符串轉(zhuǎn)換成數(shù)值再進行比較。對象轉(zhuǎn)換成基礎(chǔ)類型,利用它的或者方法。核心內(nèi)置類,會嘗試先于例外的是,利用的是轉(zhuǎn)換。

javascript-- == vs ===
高級語言層出不窮, 各個語言雖說思想一致,但仍有各自獨特的設(shè)計理念和語法, js有許多容易讓人迷惑的地方
1. == vs ===

等于跟全等在js中很是讓人迷惑, 有一個比較有意思的是突然想到在 switch 語句中到底使用的哪種比較方法, 在比較之前先來看看下面的程序, 這下放心了, switch 用的就是 === 方式的比較, 其實在 ESlint 的語法檢測中推薦摒棄 == 的寫法, 采用 === 的寫法規(guī)范.

    var a = "1";
    switch (a) {
        case 1:
            console.log("==");
            break;
        case "1":
            console.log("===");
            break;
        default:
    }
    //===

== 和 === 更高層次, 首先來說 === 的比較規(guī)則

===比較規(guī)則:

1、如果類型不同,就[不相等]
2、如果兩個都是數(shù)值,并且是同一個值,那么[相等];(!例外)的是,如果其中至少一個是NaN,那么[不相等]。(判斷一個值是否是NaN,只能用isNaN()來判斷)
3、如果兩個都是字符串,每個位置的字符都一樣,那么[相等];否則[不相等]。
4、如果兩個值都是true,或者都是false,那么[相等]。
5、如果兩個值都引用同一個對象或函數(shù),那么[相等];否則[不相等]。
6、如果兩個值都是null,或者都是undefined,那么[相等]

==比較規(guī)則:

1、如果兩個值類型相同,進行 === 比較。
2、如果兩個值類型不同,他們可能相等。根據(jù)下面規(guī)則進行類型轉(zhuǎn)換再比較:
    a、如果一個是null、一個是undefined,那么[相等]。
    b、如果一個是字符串,一個是數(shù)值,把字符串轉(zhuǎn)換成數(shù)值再進行比較。
    c、如果任一值是 true,把它轉(zhuǎn)換成 1 再比較;如果任一值是 false,把它轉(zhuǎn)換成 0 再比較。
    d、如果一個是對象,另一個是數(shù)值或字符串,把對象轉(zhuǎn)換成基礎(chǔ)類型的值再比較。對象轉(zhuǎn)換成基礎(chǔ)類型,利用它的toString或者valueOf方法。js核心內(nèi)置類,會嘗試valueOf先于toString;例外的是Date,Date利用的是toString轉(zhuǎn)換。非js核心的對象,令說(比較麻煩,我也不大懂)
    e、任何其他組合,都[不相等]
== 相對于 === 如果對象類型不同的時候會增加一層自動轉(zhuǎn)化, 在寫 js 盡量全部用 ===代替, 可以省去不必要的 bug 陷阱.

另外一個需要注意的是 switch 中的數(shù)據(jù)類型可以是任意類型, 與 c , java 等有別.

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

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

相關(guān)文章

  • JavaScript 的 4 種數(shù)組遍歷方法: for VS forEach() VS for/in

    摘要:對于,除非使用箭頭函數(shù),它的回調(diào)函數(shù)的將會變化。使用測試下面的代碼,結(jié)果如下打印打印要點使用的規(guī)則要求所有回調(diào)函數(shù)必須使用箭頭函數(shù)。 譯者按: JS 騷操作。 原文:For vs forEach() vs for/in vs for/of in JavaScript 譯者: Fundebug 本文采用意譯,版權(quán)歸原作者所有 我們有多種方法來遍歷 JavaScript 的數(shù)組或者...

    joyqi 評論0 收藏0
  • 換一種思維看待PHP VS Node.js

    摘要:提供一種可選的決策方案換一種思維看待決策能夠做的事情,也可以,反之也是,所以選擇它們很簡單,如果公司前端多,就選擇,如果公司后端多,就選擇,當然這只是個人觀點哈。 php和javascript都是非常流行的編程語言,剛剛開始一個服務(wù)于服務(wù)端,一個服務(wù)于前端,長久以來,它們都能夠和睦相處,直到有一天,一個叫做node.js的JavaScript運行環(huán)境誕生后,再加上PHP的swoole擴...

    Michael_Lin 評論0 收藏0
  • [譯]React 元素 vs React 組件 vs 組件支撐實例

    摘要:元素和組件實例都不表示真實元素。我希望這篇文章能夠幫助你理清這些術(shù)語參考資料翻譯成支撐實例來自于理解中方法創(chuàng)建組件的聲明式編程和命令式編程的比較對循環(huán)提示增加的研究精髓之一算法 本篇為譯文,原文出處:React Elements vs React Components vs Component Backing Instances 許多人可能聽說過 Facebook 的 React 庫,...

    gnehc 評論0 收藏0
  • 高效開發(fā)者是如何個性化VS Code插件與配置的?

    摘要:由于本身不能個性化配置,有時可能會引起不適,但是至少保證團隊成員可以輕易統(tǒng)一代碼風(fēng)格。就是將多于一個字母的合成一個字形。自從年雙十一正式上線,累計處理了億錯誤事件,得到了金山軟件等眾多知名用戶的認可。 譯者按: IDE是生產(chǎn)力的保證! 原文:Visual Studio Code Settings and Extensions for Faster JavaScript Develop...

    shenhualong 評論0 收藏0
  • vs code 插件折騰記(一)

    摘要:以下簡稱是微軟開發(fā)同時支持和系統(tǒng)且開放源代碼的代碼編輯器,并且是開源免費使用的,也是當下最受歡迎的代碼編輯器之一官網(wǎng)下載地址文章已更新插件折騰記二經(jīng)過我一段時間的使用,發(fā)現(xiàn)一些插件是必不可少的,現(xiàn)在給大家推薦一些非常實用的插件下載好安裝打開 Visual Studio Code(以下簡稱vs code) 是 微軟開發(fā)同時支持Windows、Linux、和macOS系統(tǒng)且開放源代碼的代碼...

    lidashuang 評論0 收藏0
  • vs code 插件折騰記(一)

    摘要:以下簡稱是微軟開發(fā)同時支持和系統(tǒng)且開放源代碼的代碼編輯器,并且是開源免費使用的,也是當下最受歡迎的代碼編輯器之一官網(wǎng)下載地址文章已更新插件折騰記二經(jīng)過我一段時間的使用,發(fā)現(xiàn)一些插件是必不可少的,現(xiàn)在給大家推薦一些非常實用的插件下載好安裝打開 Visual Studio Code(以下簡稱vs code) 是 微軟開發(fā)同時支持Windows、Linux、和macOS系統(tǒng)且開放源代碼的代碼...

    vslam 評論0 收藏0

發(fā)表評論

0條評論

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