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

資訊專欄INFORMATION COLUMN

細(xì)談布爾操作符

leap_frog / 2348人閱讀

摘要:邏輯非可以應(yīng)用于中的任何值無論這個(gè)值是什么數(shù)據(jù)類型,這個(gè)操作符都會返回一個(gè)布爾值邏輯非操作符首相會將它的操作數(shù)轉(zhuǎn)化成一個(gè)布爾值,然后對其求反邏輯與可以應(yīng)用于任何類型的操作數(shù)在有一個(gè)操作數(shù)不是布爾值的情況下,邏輯與操作就不一定返回布爾值屬于短

邏輯非(!)

可以應(yīng)用于ECMAScript中的任何值

無論這個(gè)值是什么數(shù)據(jù)類型,這個(gè)操作符都會返回一個(gè)布爾值

邏輯非操作符首相會將它的操作數(shù)轉(zhuǎn)化成一個(gè)布爾值,然后對其求反

邏輯與(&&)

可以應(yīng)用于任何類型的操作數(shù)

在有一個(gè)操作數(shù)不是布爾值的情況下,邏輯與操作就不一定返回布爾值

屬于短路操作

不能在邏輯與操作中使用未定義的值,會導(dǎo)致錯(cuò)誤

邏輯或(||)

可以應(yīng)用于任何類型的操作數(shù)

如果有一個(gè)操作數(shù)不是布爾值,邏輯或也不一定返回布爾值

屬于短路操作

一些其他思考 當(dāng)同時(shí)有邏輯或和邏輯與時(shí),或者同時(shí)有多個(gè)與操作和同時(shí)有多個(gè)或操作時(shí)執(zhí)行順序是怎樣的?

首先明確優(yōu)先級:! > && > ||

NaN && 1 || 0 // 0 :首先執(zhí)行NaN && 1,結(jié)果是NaN,然后執(zhí)行NaN || 0,最終結(jié)果是0

NaN || 1 && 0 // 0:首先執(zhí)行1 && 0,結(jié)果是0,然后執(zhí)行NaN || 0,最終結(jié)果是0

1 && NaN && 2 // NaN:按照從左到右的順序執(zhí)行,最終結(jié)果是NaN

總結(jié)幾個(gè)場景 1、邏輯或的運(yùn)用場景
function test(num) {
    var newNum = num || 1
    console.log(newNum)
}
test()  // 1
test(4) // 4
test(0) // 1

傳的是空對象,求值結(jié)果為false,返回第二個(gè)操作數(shù)

傳的是數(shù)值4,對象,返回第一個(gè)操作數(shù)

傳的是數(shù)值0,求值結(jié)果是false,返回第二個(gè)操作數(shù)

2、邏輯與的運(yùn)用場景
function test(obj) {
    var num = obj && obj.num && obj.num.count
    console.log(num)
}
test() //undefined
test({}) //undefined
test({num: {}}) // undefined
test({num: {count: 1}}) // 1

第一個(gè)操作數(shù)返回undefined,不會對后面的操作數(shù)求值,直接返回undefined

第一個(gè)操作數(shù)返回“{}”,第二個(gè)操作數(shù)返回undefined,直接返回undefined

第一個(gè)操作數(shù)返回“{num: {}}”,第二個(gè)操作數(shù)返回“{}”,第三個(gè)操作數(shù)返回undefined,返回第三個(gè)操作數(shù)

返回最后一個(gè)操作數(shù)

3、邏輯與和或的一起運(yùn)用場景
function test(obj) {
    var num = obj && obj.num && obj.num.count || 0
    console.log(num)
}
test() //0
test({}) //0
test({num: {}}) // 0
test({num: {count: 1}}) // 1

相當(dāng)于console.log(undefined||0),返回第二個(gè)操作數(shù)

同上

同上

相當(dāng)于console.log(1||0),返回第一個(gè)操作數(shù)

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

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

相關(guān)文章

  • 細(xì)談在HTML中使用JavaScript

    摘要:前言是瀏覽器的內(nèi)置腳本語言。避免,在結(jié)構(gòu)生成之前調(diào)用節(jié)點(diǎn),而產(chǎn)生錯(cuò)誤 前言 JavaScript是瀏覽器的內(nèi)置腳本語言。當(dāng)網(wǎng)頁中嵌入了JavaScript腳本,瀏覽器加載網(wǎng)頁時(shí),就會執(zhí)行腳本,從而操作瀏覽器,實(shí)現(xiàn)各種動態(tài)效果 JavaScript代碼嵌入網(wǎng)頁的方法 1、元素直接嵌入代碼 function sayHello() { alert(hello!); ...

    eternalshallow 評論0 收藏0
  • 細(xì)談在HTML中使用JavaScript

    摘要:前言是瀏覽器的內(nèi)置腳本語言。避免,在結(jié)構(gòu)生成之前調(diào)用節(jié)點(diǎn),而產(chǎn)生錯(cuò)誤 前言 JavaScript是瀏覽器的內(nèi)置腳本語言。當(dāng)網(wǎng)頁中嵌入了JavaScript腳本,瀏覽器加載網(wǎng)頁時(shí),就會執(zhí)行腳本,從而操作瀏覽器,實(shí)現(xiàn)各種動態(tài)效果 JavaScript代碼嵌入網(wǎng)頁的方法 1、元素直接嵌入代碼 function sayHello() { alert(hello!); ...

    yacheng 評論0 收藏0
  • 細(xì)談sass和less中的變量及其作用域

    摘要:如果存在一個(gè)同名的全局變量,這個(gè)全局變量也不會被重寫,除非同名的局部變量被聲明時(shí)使用關(guān)鍵字。 博客原文地址:Claiyre的個(gè)人博客 https://claiyre.github.io/博客園地址:http://www.cnblogs.com/nuannuan7362/如需轉(zhuǎn)載,請?jiān)谖恼麻_頭注明原文地址------------------------------------------...

    wslongchen 評論0 收藏0
  • 細(xì)談 vue - slot 篇

    摘要:結(jié)合我們的例子,子組件則會生成以下代碼到目前為止,對于普通插槽和作用域插槽已經(jīng)談的差不多了。下面我們將仔細(xì)談?wù)勥@塊的內(nèi)容。在看具體實(shí)現(xiàn)邏輯前,我們先通過一個(gè)例子來先了解下其基本用法然后進(jìn)行使用頁面展示效果如下看著好。本篇文章是細(xì)談 vue 系列第二篇了,上篇我們已經(jīng)細(xì)談了 vue 的核心之一 vdom,傳送門 今天我們將分析我們經(jīng)常使用的 vue 功能 slot 是如何設(shè)計(jì)和實(shí)現(xiàn)的,本文將圍...

    kaka 評論0 收藏0
  • 細(xì)談JavaScript中的一些設(shè)計(jì)模式

    摘要:注意事項(xiàng)聲明函數(shù)時(shí)候處理業(yè)務(wù)邏輯區(qū)分和單例的區(qū)別,配合單例實(shí)現(xiàn)初始化構(gòu)造函數(shù)大寫字母開頭推薦注意的成本。簡單工廠模式使用一個(gè)類通常為單體來生成實(shí)例。 @(書籍閱讀)[JavaScript, 設(shè)計(jì)模式] 常見設(shè)計(jì)模式 一直對設(shè)計(jì)模式不太懂,花了一下午加一晚上的時(shí)間,好好的看了看各種設(shè)計(jì)模式,并總結(jié)了一下。 設(shè)計(jì)模式簡介 設(shè)計(jì)模式概念解讀 設(shè)計(jì)模式的發(fā)展與在JavaScript中的應(yīng)用 ...

    30e8336b8229 評論0 收藏0

發(fā)表評論

0條評論

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