国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

細談布爾操作符

leap_frog / 2344人閱讀

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

邏輯非(!)

可以應用于ECMAScript中的任何值

無論這個值是什么數據類型,這個操作符都會返回一個布爾值

邏輯非操作符首相會將它的操作數轉化成一個布爾值,然后對其求反

邏輯與(&&)

可以應用于任何類型的操作數

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

屬于短路操作

不能在邏輯與操作中使用未定義的值,會導致錯誤

邏輯或(||)

可以應用于任何類型的操作數

如果有一個操作數不是布爾值,邏輯或也不一定返回布爾值

屬于短路操作

一些其他思考 當同時有邏輯或和邏輯與時,或者同時有多個與操作和同時有多個或操作時執行順序是怎樣的?

首先明確優先級:! > && > ||

NaN && 1 || 0 // 0 :首先執行NaN && 1,結果是NaN,然后執行NaN || 0,最終結果是0

NaN || 1 && 0 // 0:首先執行1 && 0,結果是0,然后執行NaN || 0,最終結果是0

1 && NaN && 2 // NaN:按照從左到右的順序執行,最終結果是NaN

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

傳的是空對象,求值結果為false,返回第二個操作數

傳的是數值4,對象,返回第一個操作數

傳的是數值0,求值結果是false,返回第二個操作數

2、邏輯與的運用場景
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

第一個操作數返回undefined,不會對后面的操作數求值,直接返回undefined

第一個操作數返回“{}”,第二個操作數返回undefined,直接返回undefined

第一個操作數返回“{num: {}}”,第二個操作數返回“{}”,第三個操作數返回undefined,返回第三個操作數

返回最后一個操作數

3、邏輯與和或的一起運用場景
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

相當于console.log(undefined||0),返回第二個操作數

同上

同上

相當于console.log(1||0),返回第一個操作數

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95269.html

相關文章

  • 細談在HTML中使用JavaScript

    摘要:前言是瀏覽器的內置腳本語言。避免,在結構生成之前調用節點,而產生錯誤 前言 JavaScript是瀏覽器的內置腳本語言。當網頁中嵌入了JavaScript腳本,瀏覽器加載網頁時,就會執行腳本,從而操作瀏覽器,實現各種動態效果 JavaScript代碼嵌入網頁的方法 1、元素直接嵌入代碼 function sayHello() { alert(hello!); ...

    eternalshallow 評論0 收藏0
  • 細談在HTML中使用JavaScript

    摘要:前言是瀏覽器的內置腳本語言。避免,在結構生成之前調用節點,而產生錯誤 前言 JavaScript是瀏覽器的內置腳本語言。當網頁中嵌入了JavaScript腳本,瀏覽器加載網頁時,就會執行腳本,從而操作瀏覽器,實現各種動態效果 JavaScript代碼嵌入網頁的方法 1、元素直接嵌入代碼 function sayHello() { alert(hello!); ...

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

    摘要:如果存在一個同名的全局變量,這個全局變量也不會被重寫,除非同名的局部變量被聲明時使用關鍵字。 博客原文地址:Claiyre的個人博客 https://claiyre.github.io/博客園地址:http://www.cnblogs.com/nuannuan7362/如需轉載,請在文章開頭注明原文地址------------------------------------------...

    wslongchen 評論0 收藏0
  • 細談 vue - slot 篇

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

    kaka 評論0 收藏0
  • 細談JavaScript中的一些設計模式

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

    30e8336b8229 評論0 收藏0

發表評論

0條評論

leap_frog

|高級講師

TA的文章

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