摘要:布爾操作符邏輯非將操作數(shù)任何數(shù)據(jù)類型轉(zhuǎn)換為一個(gè)布爾值,并求反。除和以外的任何類型,此操作都會(huì)返回任何非空的類型,此操作都會(huì)返回連續(xù)使用兩個(gè)可達(dá)到函數(shù)同樣的效果。
布爾操作符 邏輯非(!)
將操作數(shù)(任何數(shù)據(jù)類型)轉(zhuǎn)換為一個(gè)布爾值,并求反。
!null; // true !undefined; // true !true; // false !false; // true !0; // true !NaN; // true !1; // false 除 0 和 NaN 以外的任何 Number 類型,此操作都會(huì)返回 false !""; // true !"s"; // false 任何非空的String類型,此操作都會(huì)返回false !Symbol(); // false
連續(xù)使用兩個(gè) ! 可達(dá)到 Boolean() 函數(shù)同樣的效果。
!!null; // false // ...邏輯與(&&)
屬于短路操作,當(dāng)?shù)谝粋€(gè)操作數(shù)求值結(jié)果為false(如果不為Boolean類型則存在一個(gè)隱形轉(zhuǎn)換),則不會(huì)再對(duì)第二個(gè)操作數(shù)求值,并返回第一個(gè)操作數(shù);只有當(dāng)?shù)谝粋€(gè)操作數(shù)位 true 才會(huì)返回第二個(gè)操作數(shù)(不論第二個(gè)操作數(shù)是 true 還是 false)。
const b1 = true; const result1 = (b1 && undefined_variable); // ReferenceError console.log(result1); const b2 = false; // 如果是非 Boolean 類型則會(huì)自動(dòng)轉(zhuǎn)為 Boolean 類型 const result2 = (b2 && undefined_variable); console.log(result2); // false b1 && console.log("只有第一個(gè)操作數(shù)為真,我才會(huì)出現(xiàn)在控制臺(tái)") b2 && console.log("只有第一個(gè)操作數(shù)為真,我才會(huì)出現(xiàn)在控制臺(tái)")邏輯或(||)
同樣屬于短路操作,當(dāng)?shù)谝粋€(gè)操作數(shù)求值結(jié)果為 true (如果不為Boolean類型則存在一個(gè)隱形轉(zhuǎn)換),則不會(huì)對(duì)第二個(gè)操作數(shù)求值,并返回第一個(gè)操作數(shù);只有當(dāng)?shù)谝粋€(gè)操作數(shù)為 false 才會(huì)返回第二個(gè)操作數(shù)(不論第二個(gè)操作數(shù)是 true 還是 false)。
const b1 = true; const result1 = (b1 || undefined_variable); console.log(result1); // false const b2 = false; const result2 = (b2 || undefined_variable); // ReferenceError console.log(result2); b1 || console.log("你在控制臺(tái)看不到我") b2 || console.log("我會(huì)出現(xiàn)在控制臺(tái)!因?yàn)閎2 === false")加性操作符 加法
Number類型:
任何數(shù)加NaN,結(jié)果都是NaN
Infinity + Infinity = Infinity
Infinity - Infinity = NaN
-Infinity - Infinity = -Infinity
0 + 0 = 0
0 - 0 = 0
-0 - 0 = -0
操作數(shù)中包含 String 類型,則將非 String 類型轉(zhuǎn)為 String 類型并拼接。
Object、Boolean類型,則調(diào)用它們的toString()方法獲得字符串值。默認(rèn)情況下 Object 類型返回 "[object Object]",Boolean類型 true 返回 "true"、false 返回 "false"
Undefined類型或Null類型: 調(diào)用 String() 取得字符串 "undefined"或 "null"
const s1 = "" + "s"; const s2 = "str" + { name: "Ashin" }; const s3 = "str" + true; const s4 = "str" + null; const s5 = "str" + undefined; console.log(s1); // "s" console.log(s2); // "str[object Object]" console.log(s3); // "strtrue" console.log(s4); // "strnull" console.log(s5); // "strundefined"減法 乘性操作符 乘法 除法 求模 關(guān)系操作符 相等操作符 相等和不相等 全等和不全等
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/105750.html
摘要:操作符還有可能是設(shè)計(jì)中最大缺陷,因?yàn)樗鼛缀跏峭耆茡p的。由于用法與調(diào)用函數(shù)的語(yǔ)法相似,因此常被誤以為是函數(shù)調(diào)用,實(shí)際上并不存在名為的函數(shù),只是一個(gè)操作符而已。而列則表示對(duì)象內(nèi)部的屬性。屬性文檔中明確地給出了獲得屬性的途徑,就是使用。 typeof 操作符(還有 instanceof)可能是 Javascript 設(shè)計(jì)中最大缺陷,因?yàn)樗鼛缀跏峭耆茡p的。由于 typeof 用法與調(diào)用函數(shù)...
摘要:重新鞏固系列,都是比較基礎(chǔ)的東西,可以進(jìn)行查漏補(bǔ)缺,很快看完,這是第二篇。關(guān)系運(yùn)算符用于比較操作符左右的操作數(shù)的大小。邏輯運(yùn)算符主要通過(guò)與或非來(lái)判斷一個(gè)表達(dá)式的值是否為。注意與和或操作具有短路計(jì)算效果。重新鞏固JS系列,都是比較基礎(chǔ)的東西,可以進(jìn)行查漏補(bǔ)缺,很快看完,這是第二篇。 其他JS重新鞏固系列: 重新鞏固JS(一)——JavaScript基本類型 重新鞏固JS(三)——JavaSc...
摘要:邏輯非操作符只能作用于單個(gè)邏輯操作數(shù),其結(jié)果是把那個(gè)邏輯操作數(shù)所返回的布爾值取反。如果那個(gè)邏輯操作數(shù)所返回的布爾值是,邏輯非操作符將把它取反為為了避免產(chǎn)生歧義,上面這條語(yǔ)句把邏輯操作數(shù)放在了括號(hào)里,使邏輯非操作符作用于括號(hào)里的所有內(nèi)容。 算術(shù)操作符 加減乘除這些算術(shù)操作中的每一種都必須借助于相應(yīng)的操作符才能完成。操作符是JavaScript為完成各種操作而定義的一些符號(hào)。等號(hào)(=)、加...
摘要:邏輯非操作符只能作用于單個(gè)邏輯操作數(shù),其結(jié)果是把那個(gè)邏輯操作數(shù)所返回的布爾值取反。如果那個(gè)邏輯操作數(shù)所返回的布爾值是,邏輯非操作符將把它取反為為了避免產(chǎn)生歧義,上面這條語(yǔ)句把邏輯操作數(shù)放在了括號(hào)里,使邏輯非操作符作用于括號(hào)里的所有內(nèi)容。 算術(shù)操作符 加減乘除這些算術(shù)操作中的每一種都必須借助于相應(yīng)的操作符才能完成。操作符是JavaScript為完成各種操作而定義的一些符號(hào)。等號(hào)(=)、加...
摘要:邏輯非操作符只能作用于單個(gè)邏輯操作數(shù),其結(jié)果是把那個(gè)邏輯操作數(shù)所返回的布爾值取反。如果那個(gè)邏輯操作數(shù)所返回的布爾值是,邏輯非操作符將把它取反為為了避免產(chǎn)生歧義,上面這條語(yǔ)句把邏輯操作數(shù)放在了括號(hào)里,使邏輯非操作符作用于括號(hào)里的所有內(nèi)容。 算術(shù)操作符 加減乘除這些算術(shù)操作中的每一種都必須借助于相應(yīng)的操作符才能完成。操作符是JavaScript為完成各種操作而定義的一些符號(hào)。等號(hào)(=)、加...
摘要:個(gè)人前端文章整理從最開(kāi)始萌生寫(xiě)文章的想法,到著手開(kāi)始寫(xiě),再到現(xiàn)在已經(jīng)一年的時(shí)間了,由于工作比較忙,更新緩慢,后面還是會(huì)繼更新,現(xiàn)將已經(jīng)寫(xiě)好的文章整理一個(gè)目錄,方便更多的小伙伴去學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個(gè)人前端文章整理 從最開(kāi)始萌生寫(xiě)文章的想法,到著手...
閱讀 2324·2021-11-22 12:01
閱讀 2001·2021-11-12 10:34
閱讀 4526·2021-09-22 15:47
閱讀 2837·2019-08-30 15:56
閱讀 2870·2019-08-30 15:53
閱讀 2411·2019-08-30 13:53
閱讀 3387·2019-08-29 15:35
閱讀 3132·2019-08-29 12:27