日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

JS不要再到處使用絕對等于運算符了

瀏覽:223日期:2024-03-29 16:52:00
概述

我們知道現在的開發人員都使用===來代替==,為什么呢?

我在網上看到的大多數教程都認為,要預測JavaScript強制轉換是如何工作這太復雜了,因此建議總是使用===。

這些都導致許多程序員將該語言的一部分排除在外,并將其視為一種缺陷,而不是去擴大他們的對該過程的理解。

下面通過兩個使用案例,說明使用==的好處。

1.測試空值

if (x == null)vsif (x === undefined || x === null)2.讀取用戶的輸入

let userInput = document.getElementById(’amount’);let amount = 999;if (amount == userInput)vsif (amout === Number(userInput))

在本文中,我們將通過對比差異,理解強制性,研究一些流行的用例,并最終找到指導我們做出決定的準則,來深入了解該主題。

簡介

在JavaScript中,相等由兩個運算符完成。

1.=== —嚴格相等比較也稱為三等運算符。

2.== — 抽象的相等比較

我一直在使用===,因為我被告知它比==更好和更好,而且我根本不需要考慮它,作為一個懶惰的人,我覺得很方便。

直到我觀看了Kyle或@getfiy的You Do n’t Know JS作者在Frontend Masters上的“ Deep JavaScript Foundations”。

作為一名專業的程序員,我沒有深入思考我每天工作中使用的操作符,這一事實激勵我去傳播意識,并鼓勵人們更多地理解和關注我們編寫的代碼。

事實的根源在哪里

知道真實的原因在哪里很重要。 不是在 Mozilla 的 W3school 上,也不在聲稱===優于==的數百篇文章中,而且在這篇文章中也絕對沒有。。

在JavaScript規范中,我們可以找到關于JavaScript如何工作的文檔。

打破常識1.==只檢查值(松散)

如果看一下規范,從定義中可以很清楚地看出,算法要做的第一件事實際上就是檢查類型。

JS不要再到處使用絕對等于運算符了

2.===檢查值和類型(嚴格)

在這里,我們同樣可以從規范中看到,它檢查類型,如果它們不同,則不會再檢查值。

JS不要再到處使用絕對等于運算符了

雙等號和三等號之間的真正區別是我們是否允許強制轉換。

JavaScript 中的強制轉換

強制轉換或類型轉換是任何編程語言的基礎之一。 這對于動態類型化的語言(例如JavaScript)尤為重要,因為如果類型更改,編譯器不會對它大喊大叫,找它麻煩。

理解強制性意味著我們能夠以與JavaScript相同的方式解釋代碼,從而為我們提供了更大的可擴展性并最大程度地減少了錯誤。

顯性強制轉換

強制轉換可以在程序員調用這些方法之一時顯式發生,從而強制改變變量的類型。

Boolean(), Number(), BigInt(), String(), Object()

事例:

let x = ’foo’;typeof x // stringx = Boolean(’foo’)typeof x // boolean隱藏轉換

在JavaScript中,變量的類型很弱,因此這意味著它們可以自動轉換(隱式強制)。 當我們使用算術運算符+ / — *,周圍的上下文或使用==時,通常是這種情況。

2 / ’3’ // ’3’ 強制轉為 3new Date() + 1 // 強制轉換為以1結尾的日期字符串if(x) // x 被強制為布爾值1 == true // true 被強制為 11 == ’true’ // ’true’ 被強制為 NaN`this ${variable} will be coreced to string

隱性強制是一把雙刃劍,合理使用可以增加可讀性,減少冗長。如果使用不當或被誤解,我們就會有一個讓人失望的公式,人們會咆哮并指責JavaScript。

比較的算法

== 運算符號的算法

1.如果X和Y是相同的類型,則執行===。

2.如果X為null且Y未定義或反之,則為true。

3.如果一個是數字,則將另一個強制為數字。

4.如果一個是對象,則強制轉換為原始對象。

5.其它,返回false。

=== 比較的算法

1.如果類型不匹配false。

2.如果類型匹配-比較值,為NaN時返回false。

3.-0 — true.

流行的用例1. 同類型(多數情況)

如果類型相同,則===與==完全相同。因此,應該使用語義性更強的那個。

1 == 1 // true......1 === 1 // true’foo’ == ’foo’ // true...... ’foo’ === ’foo’ //true

類型不同,我更喜歡用===。

2. 不同類型(原始類型)

首先,我想提醒您注意,不同類型并不意味著未知類型。不知道類型表明代碼中的問題比僅使用===vs==更大。了解類型表明對代碼有更深入的理解,這會減少更多的錯誤。

假設我們有一個數字或字符串的可能性。請記住,算法更偏向數字類型,因此它將嘗試使用toNumber()

let foo = 2;let bar = 32; // number 還是 stringfoo == bar // 如果 bar 是字符串,它會轉換成 numberfoo === Number(bar) // doing basically the samefoo === bar // 哪里 bar 為 string 則該結果為 false3. null和undefined

使用==時,null和undefined彼此相等。

let foo = nulllet bar = undefined; foo == bar // truefoo === bar // false4.非原始類型[對象,數組]

不應該使用==或===來比較對象和數組等非原始類型的數據。

決策準則

1.在所有可以使用的情況下,最好使用==。

2.==具有已知類型,可以選擇強制類型轉換。

3.知道類型總比不知道好。

4.如果不知道類型,就不要使用==。

5.當類型不匹配時,===是沒有意義的。

6.當類型匹配時,===是不必要的。

避免使用 == 情況

在某些情況下,如果不真正了解JavaScript中的虛值,則不應使用==。

== with 0 or '' or ' '== with non primtives== true or == false總結

根據我的經驗,到目前為止,我一直都知道我要處理的變量的類型,如果我不知道,我就使用typeof來只允許我所期望的變量。

需要注意的四點

1.如果你不知道變量類型,那么使用===是惟一合理的選擇

2.不知道類型可能意味著你不理解代碼,請嘗試重構你的代碼

3.知道類型可以編寫更好的代碼。

4.如果類型已知,則最好使用==。

以上就是JS不要再到處使用絕對等于運算符了的詳細內容,更多關于JS的資料請關注好吧啦網其它相關文章!

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩一级网站| 欧美日韩水蜜桃| 激情欧美丁香| 欧美日韩精品免费观看视完整| 欧美激情福利| 亚洲欧美在线综合| 首页欧美精品中文字幕| 亚洲精品一二三区区别| 国产一区亚洲| 亚洲精品小说| 蜜臀久久99精品久久久久久9| 午夜亚洲一区| 亚洲精品伦理| 欧美一级一区| 捆绑调教美女网站视频一区| 国产一区二区三区视频在线| 神马久久午夜| 亚洲女同中文字幕| 天使萌一区二区三区免费观看| 鲁大师影院一区二区三区| 亚洲激情中文在线| 国产亚洲在线| 蜜桃av一区二区在线观看| 中文一区在线| 色综合视频一区二区三区日韩| 日本不卡不码高清免费观看| 91国内精品| 国产在线观看91一区二区三区| 日本蜜桃在线观看视频| 999国产精品视频| 水野朝阳av一区二区三区| 青青青国产精品| 国产在线观看www| 夜夜精品视频| 免费黄网站欧美| 欧美日本一区| 日韩中文首页| 亚洲欧美网站在线观看| 精品日韩一区| 免费成人性网站| 久久久久亚洲精品中文字幕| 91精品一区二区三区综合在线爱| 蜜桃av一区二区三区电影| 麻豆精品久久久| 亚洲国内欧美| 国产日韩欧美中文在线| 伊伊综合在线| 亚久久调教视频| 国产中文字幕一区二区三区| 欧美日韩国产一区精品一区| 视频一区中文字幕精品| 国产一区三区在线播放| 不卡视频在线| 国产日韩一区二区三区在线播放| 香蕉视频亚洲一级| 亚洲三级国产| 国产伦久视频在线观看| 六月婷婷一区| 岛国av在线播放| 亚洲精品乱码日韩| 成人三级高清视频在线看| 免费在线观看视频一区| 久久不见久久见国语| 亚洲欧美综合| 国产日韩欧美一区| 欧产日产国产精品视频| 蜜臀a∨国产成人精品| 97精品97| 亚洲精品九九| 久久高清免费| 国产伦精品一区二区三区在线播放| 色婷婷狠狠五月综合天色拍| 日本色综合中文字幕| 精品中文字幕一区二区三区av| 日韩精品第一| 激情五月综合网| 国产一区二区三区天码| 日本精品在线播放| 国产综合婷婷| 91欧美日韩| 婷婷精品久久久久久久久久不卡| 色偷偷偷在线视频播放| 国产精品三级| 午夜亚洲福利| 亚洲欧美日韩国产一区二区| 日韩在线不卡| 精品久久电影| 91大神在线观看线路一区| 中国女人久久久| 久久亚洲国产| 中文在线资源| 欧美成人精品一级| 日本aⅴ亚洲精品中文乱码| 国产亚洲欧洲| 激情婷婷亚洲| 激情黄产视频在线免费观看| 国产欧美一级| 日韩三级精品| 免费不卡在线观看| 亚洲欧洲一区| 欧美国产91| 久久精品国产99久久| 亚洲三级欧美| 国产精品国产三级国产在线观看| 欧美日韩一区二区三区四区在线观看 | 制服诱惑一区二区| 久久要要av| 久久久精品午夜少妇| 毛片在线网站| sm捆绑调教国产免费网站在线观看| 欧美激情99| 国产精品超碰| 国产精品亚洲产品| 国产精品一国产精品| 日韩中文字幕在线一区| 麻豆成人在线| 亚洲资源在线| 亚洲香蕉视频| 亚欧成人精品| 日本欧美韩国一区三区| 日韩av一区二区在线影视| 视频精品一区| 久久国产麻豆精品| 国产精品久久久久久久久免费高清 | 日韩激情网站| 亚洲精品成a人ⅴ香蕉片| 久热re这里精品视频在线6| 模特精品在线| 免费黄网站欧美| 日韩欧美久久| 国产欧美日韩综合一区在线播放| 亚洲精品伦理| 国产一卡不卡| 精品国产午夜| 日韩精品电影| 国产精品99免费看| 蜜桃视频欧美| 美女国产一区| 日韩免费精品| 国产极品一区| 精品国产乱码久久久| www.com.cn成人| 欧美日韩日本国产亚洲在线| 亚洲精华国产欧美| 日韩在线网址| 国产激情久久| 亚洲涩涩在线| 在线视频日韩| 欧美久久一区二区三区| 成人精品动漫一区二区三区| 成人看片网站| 欧美日韩三区| 日韩福利视频一区| 久久精品国产久精国产| 欧美精品高清| 国产视频一区三区| 青青草精品视频| 91一区二区| 先锋影音久久久| 久久激情av| 电影天堂国产精品| 在线国产精品一区| 免费日韩成人| 久久一区二区中文字幕| 亚洲尤物av| 麻豆精品久久久| 激情自拍一区| 日本亚洲欧洲无免费码在线| 麻豆91在线播放| 欧美jjzz| 久久激情五月婷婷| 在线成人动漫av| 日韩激情av在线| 国产精品字幕| 亚久久调教视频| 波多野结衣久久精品| 蜜臀a∨国产成人精品| 国产一区二区三区四区二区| 亚洲专区在线| 国产va免费精品观看精品视频| 伊人久久亚洲热| 日本精品国产| 精品三级久久| 日韩精品成人在线观看| 天堂а√在线最新版中文在线| 日韩影院免费视频| 国产麻豆精品久久| 亚洲女同中文字幕| 久久一区欧美| 综合激情一区| 久久久久久黄| 国产精品麻豆成人av电影艾秋 | 97国产成人高清在线观看| 亚洲作爱视频| 精品一区二区三区中文字幕视频| 午夜日韩av| 麻豆成人91精品二区三区| 热久久久久久久| 91看片一区| 国产精品4hu.www|