最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript邏輯運算符相關(guān)總結(jié)

 更新時間:2020年09月04日 08:23:37   作者:Clloz  
這篇文章主要介紹了JavaScript邏輯運算符的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)JavaScript,感興趣的朋友可以了解下

前言

關(guān)于 JavaScript 中的邏輯運算符,我們經(jīng)常使用卻可能不知道它的一些機制和用法。

機制

首先我們需要知道幾種邏輯運算符的優(yōu)先級是不同的(關(guān)于完整的運算符優(yōu)先級,看運算符優(yōu)先級),邏輯非>邏輯與>邏輯或>條件運算符(三目運算符)。運算順序條件運算符是從右向左,而邏輯與和邏輯或都是從左向右。

//表達式的優(yōu)先級導(dǎo)致結(jié)果不同
false && true || true   // 結(jié)果為 true
false && (true || true)   // 結(jié)果為 false

邏輯運算表達式返回的是字表達式的值,而不是一個 Boolean,只不過很多時候我們使用邏輯表達式的地方幫我們強制轉(zhuǎn)換了,比如 if 語句等。

邏輯運算符通常用于布爾型(邏輯)值。這種情況下,它們返回一個布爾值。然而, && 和 || 運算符會返回一個指定操作數(shù)的值,因此,這些運算符也用于非布爾值。這時,它們也就會返回一個非布爾型值。

邏輯與 expression1 && expression2 的機制是,如果 expression1 能夠轉(zhuǎn)換為 true 那么返回 expression2 ,否則返回 expression1。

邏輯或 expression1 || expression2 的機制是,如果 expression1 能夠轉(zhuǎn)化為 true 那么返回 expression1,否則返回 expression2

邏輯非 !expression ,若 expression 能夠轉(zhuǎn)化為 true 則返回 false,否則返回 true。

expression 可能是任何一種類型, 不一定是布爾值。

會被轉(zhuǎn)化為 false 的表達式有:

  • null
  • NaN
  • 0
  • 空字符串("" or '' or“` “ “`)
  • undefined

需要特別注意的是 undefined,有些表達式返回的是 undefined ,比如沒有設(shè)置 return 的函數(shù)執(zhí)行的返回值就是 undefined。

盡管 && || 運算符能夠使用非布爾值的操作數(shù), 但它們依然可以被看作是布爾操作符,因為它們的返回值總是能夠被轉(zhuǎn)換為布爾值。如果要顯式地將它們的返回值(或者表達式)轉(zhuǎn)換為布爾值,請使用雙重非運算符(即!!)或者 Boolean 構(gòu)造函數(shù)。

雙重非運算符 !! 可以將任意值強制轉(zhuǎn)換為布爾值,在需要條件判斷的地方經(jīng)常使用。

短路計算

邏輯運算的機制還存在短路計算:

  • (some falsy expression1) && (expression2) 短路計算的結(jié)果為假。
  • (some truthy expression1) || (expression2) 短路計算的結(jié)果為真。

短路意味著上述表達式中的 expression2 部分不會被執(zhí)行,因此 expression2 的任何副作用都不會生效(舉個例子,如果 expression 是一次函數(shù)調(diào)用,這次調(diào)用就不會發(fā)生)。造成這種現(xiàn)象的原因是,整個表達式的值在第一個操作數(shù)被計算后已經(jīng)確定了。

用法

利用 javascript 中邏輯運算符支持任意類型和短路計算的特性我們可以將邏輯運算符運用到一些特殊的地方。

邏輯與

邏輯與可以用來獲得第一個假值,比如 expr1 && expr2 && expr3,當其中存在假值的時候會被返回。也可以類推至前面的表達式都為真的時候執(zhí)行最后一個表達式來簡化判斷邏輯的代碼,比如 x > 0 && a(),這可以代替 if 語句。

邏輯或

邏輯或可以用來設(shè)置默認值,比如你的函數(shù)需要用戶輸入一個參數(shù),如果用戶沒有輸入則給定一個默認值。this.a = param || {}

以上就是JavaScript邏輯運算符相關(guān)總結(jié)的詳細內(nèi)容,更多關(guān)于JavaScript邏輯運算符的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 深入探討JavaScript中Class的語法與使用

    深入探討JavaScript中Class的語法與使用

    這篇文章將帶大家深入探討 class 在 JavaScript 中的作用、語法和使用方法,并與 ES5 構(gòu)造函數(shù)進行對比,希望可以幫助大家更好地理解和應(yīng)用類的概念
    2023-06-06
  • 前端JavaScript頁面插入圖片的7種方法及避坑指南

    前端JavaScript頁面插入圖片的7種方法及避坑指南

    文章詳細探討了前端頁面插入圖片時需要考慮的各個方面,包括加載順序、響應(yīng)式適配、懶加載、格式選擇、緩存策略、SEO和性能評分等,通過分享作者的實際經(jīng)驗,文章提供了優(yōu)化圖片加載和渲染的實用方法和技巧,需要的朋友可以參考下
    2025-12-12
  • javascript常用方法、屬性集合及NodeList 和 HTMLCollection 的瀏覽器差異

    javascript常用方法、屬性集合及NodeList 和 HTMLCollection 的瀏覽器差異

    對于 HTMLCollection集合對象 必須要說一說的是 namedItem方法. 看看規(guī)范的解釋.
    2010-12-12
  • Javascript中的every()與some()的區(qū)別和應(yīng)用小結(jié)

    Javascript中的every()與some()的區(qū)別和應(yīng)用小結(jié)

    every跟some不同點在于,every要判斷數(shù)組中是否每個元素都滿足條件,只有都滿足條件才返回true,只要有一個不滿足就返回false,這篇文章主要介紹了Javascript中的every()與some()的區(qū)別和應(yīng)用,需要的朋友可以參考下
    2023-05-05
  • js中substring和substr的定義和用法

    js中substring和substr的定義和用法

    這篇文章主要介紹了js中substring和substr的定義和用法,需要的朋友可以參考下
    2014-05-05
  • JavaScript?中傳遞參數(shù)的方式示例詳解

    JavaScript?中傳遞參數(shù)的方式示例詳解

    JavaScript中參數(shù)傳遞方式包括按值傳遞、按引用傳遞、參數(shù)解構(gòu)傳遞、Rest參數(shù)傳遞、回調(diào)函數(shù)傳遞、閉包傳遞、模板字符串傳遞和高階函數(shù)傳遞,每種方式都有其特點和適用場景,選擇合適的傳遞方式可以提高代碼的可讀性、可維護性和靈活性,感興趣的朋友一起看看吧
    2025-01-01
  • mapboxgl區(qū)劃標簽避讓不遮蓋實現(xiàn)的代碼詳解

    mapboxgl區(qū)劃標簽避讓不遮蓋實現(xiàn)的代碼詳解

    Mapbox是一個可以免費創(chuàng)建并定制個性化地圖的網(wǎng)站。這篇文章主要介紹了mapboxgl區(qū)劃標簽避讓不遮蓋實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • JavaScript實現(xiàn)合并(歸并)排序算法示例解析

    JavaScript實現(xiàn)合并(歸并)排序算法示例解析

    這篇文章主要為大家介紹了JavaScript實現(xiàn)合并(歸并)排序算法示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • js檢測輸入內(nèi)容全為空格的方法

    js檢測輸入內(nèi)容全為空格的方法

    這篇文章主要介紹了js檢測輸入內(nèi)容全為空格的方法,,需要的朋友可以參考下
    2014-05-05
  • 詳解webpack多頁面配置記錄

    詳解webpack多頁面配置記錄

    本篇文章主要介紹了詳解webpack多頁面配置記錄,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01

最新評論

莱芜市| 涞源县| 扶风县| 沭阳县| 九龙坡区| 视频| 民丰县| 汉源县| 胶州市| 青田县| 泾川县| 光泽县| 江源县| 盐津县| 邹城市| 宝山区| 九寨沟县| 日照市| 山西省| 合川市| 河东区| 罗山县| 海晏县| 封丘县| 灵寿县| 肇源县| 桃江县| 凤翔县| 集安市| 张家界市| 富源县| 博乐市| 伊通| 大同市| 沈阳市| 石狮市| 山东省| 鹤山市| 临高县| 景洪市| 扶绥县|