摘要:同理,若為,返回的結(jié)果若為或者,且為,返回的結(jié)果。同理,若為或者,且為,返回的結(jié)果是對(duì)象轉(zhuǎn)換基本類型的方法??磦€(gè)例子根據(jù)上述規(guī)則來解析為,上式為第條上式為第條上式為,上式為第條上式為
前不久因?yàn)橐粋€(gè)項(xiàng)目設(shè)計(jì)的問題,煩心了好幾天,為了不留坑擁抱強(qiáng)類型語言特點(diǎn),還是選擇了"==="作為數(shù)據(jù)判斷是否相等,對(duì)于"=="今天來探究一下貓膩(弱類型的JavaScript的坑真的太多了,typescript真香)
"==" 操作符這個(gè)操作符相信學(xué)過開發(fā)的人完全不陌生,對(duì)于強(qiáng)類型語言我這兒就不做過多描述,咱們這兒就鉆JavaScript的牛角尖
x == y,x,y都表示一個(gè)值,這個(gè)操作符返回的是bool值true或者false;
對(duì)于這個(gè)操作有相對(duì)應(yīng)的比較方式(對(duì)于所有的JavaScript類型):
1.若type(x)和type(y)相同,則: a.若type(x)為undefined,返回true b.若type(x)為null,返回true c.若type(x)為number,則: i.若 x 為NaN,返回false ii.若 y 為NaN,返回false iii.若 x , y 為相同數(shù)值,返回true iv.若 x 為 +0且 y 為 -0,返回true v.若 x 為 -0且 y 為 +0,返回true d.若type(x)為string,則當(dāng) x , y 完全為相同字符序列的時(shí)候(長(zhǎng)度和相同位置的字符一樣)返回true e.若type(x)為boolean,當(dāng) x , y 同為true返回true,否則返回false 2.若 x 為null且 y 為undefined,返回true 3.若 x 為undefined且 y 為null,返回true 4.若type(x)為number且type(y)為string,返回x == ToNumber(y)的結(jié)果 5.若type(x)為string且type(y)為number,返回ToNumber(x) == y的結(jié)果 6.若type(x)為boolean,返回ToNumber(x) == y的結(jié)果。同理,若type(y)為boolean,返回ToNumber(y) == x的結(jié)果 7.若type(x)為string或者number,且type(y)為object,返回x == ToPrimitive(y)的結(jié)果。同理,若type(y)為string或者number,且type(x)為object,返回y == ToPrimitive(x)的結(jié)果
ToPrimitive是對(duì)象轉(zhuǎn)換基本類型的方法。
看個(gè)例子:
[] == ![] // true
根據(jù)上述規(guī)則來解析:
1.![]為false,上式為: [] == false 2.第6條:上式為: [] == ToNumber(false) => [] == 0, 3.第7條:上式為:ToPrimitive([]) == 0, 4.[].toString() = "",上式為:"" == 0, 5.第4條:上式為:0 == 0 => true
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/100494.html
摘要:代碼示例等號(hào)檢查,類型轉(zhuǎn)換后返回全等檢查,由于時(shí)類型,時(shí)類型,類型不同,返回關(guān)系運(yùn)算符關(guān)系運(yùn)算符執(zhí)行的是比較運(yùn)算,通常用于判斷兩個(gè)變量哪個(gè)大哪個(gè)小關(guān)系運(yùn)算符都返回一個(gè)布爾值。邏輯或運(yùn)輸符用雙豎線表示。 1.運(yùn)算符 JavaScript中常見的運(yùn)算符包含:賦值運(yùn)算符、算數(shù)運(yùn)算符、等性運(yùn)算符、關(guān)系運(yùn)算符、條件運(yùn)算符、布爾運(yùn)算符、邏輯運(yùn)算符…… 1.賦值運(yùn)算符 = 賦值運(yùn)算符=,用于給某個(gè)變...
摘要:所以為為第二步轉(zhuǎn)成根據(jù)文檔比較操作符如果一個(gè)對(duì)象與數(shù)字或字符串相比較,會(huì)嘗試返回對(duì)象的默認(rèn)值。嘗試將數(shù)字字面量轉(zhuǎn)換為數(shù)字類型的值。 [] == false; //為True !![] == false; //為False 一、[] == false為True 第一步 轉(zhuǎn)成[] == 0 根據(jù) MDN Web 文檔-比較操作符:https://developer.mozilla.org...
摘要:所以為第四步轉(zhuǎn)成根據(jù)文檔比較操作符當(dāng)比較數(shù)字和字符串時(shí),字符串會(huì)轉(zhuǎn)換成數(shù)字值。嘗試將數(shù)字字面量轉(zhuǎn)換為數(shù)字類型的值。最后位所以為其他鏈接 [] == ![] //為True 第一步 轉(zhuǎn)成[] == false 根據(jù) MDN Web 文檔-運(yùn)算符優(yōu)先級(jí):[https://developer.mozilla.org...](https://developer.mozilla.org...s...
摘要:在表單提交時(shí),瀏覽器會(huì)自動(dòng)進(jìn)行一系列的校驗(yàn)工作,沒有通過校驗(yàn)的表單是無法提交到服務(wù)器的。而方法提交表單,會(huì)在請(qǐng)求中發(fā)送表單字段鍵值對(duì)。表單提交事件表單提交到服務(wù)器時(shí),會(huì)觸發(fā)事件。 上一篇主要溫習(xí)了一下form表單的屬性和表單元素,這一片主要講解用JavaScript如何操作form。 表單操作 取值 用JavaScript操作表單,免不了會(huì)有取值賦值操作,比如有以下表單: ...
閱讀 1075·2021-11-12 10:34
閱讀 1002·2021-09-30 09:56
閱讀 679·2019-08-30 15:54
閱讀 2616·2019-08-30 11:14
閱讀 1478·2019-08-29 16:44
閱讀 3219·2019-08-29 16:35
閱讀 2505·2019-08-29 16:22
閱讀 2454·2019-08-29 15:39