摘要:邏輯非可以應用于中的任何值無論這個值是什么數據類型,這個操作符都會返回一個布爾值邏輯非操作符首相會將它的操作數轉化成一個布爾值,然后對其求反邏輯與可以應用于任何類型的操作數在有一個操作數不是布爾值的情況下,邏輯與操作就不一定返回布爾值屬于短
邏輯非(!)
可以應用于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
摘要:前言是瀏覽器的內置腳本語言。避免,在結構生成之前調用節點,而產生錯誤 前言 JavaScript是瀏覽器的內置腳本語言。當網頁中嵌入了JavaScript腳本,瀏覽器加載網頁時,就會執行腳本,從而操作瀏覽器,實現各種動態效果 JavaScript代碼嵌入網頁的方法 1、元素直接嵌入代碼 function sayHello() { alert(hello!); ...
摘要:前言是瀏覽器的內置腳本語言。避免,在結構生成之前調用節點,而產生錯誤 前言 JavaScript是瀏覽器的內置腳本語言。當網頁中嵌入了JavaScript腳本,瀏覽器加載網頁時,就會執行腳本,從而操作瀏覽器,實現各種動態效果 JavaScript代碼嵌入網頁的方法 1、元素直接嵌入代碼 function sayHello() { alert(hello!); ...
摘要:如果存在一個同名的全局變量,這個全局變量也不會被重寫,除非同名的局部變量被聲明時使用關鍵字。 博客原文地址:Claiyre的個人博客 https://claiyre.github.io/博客園地址:http://www.cnblogs.com/nuannuan7362/如需轉載,請在文章開頭注明原文地址------------------------------------------...
摘要:結合我們的例子,子組件則會生成以下代碼到目前為止,對于普通插槽和作用域插槽已經談的差不多了。下面我們將仔細談談這塊的內容。在看具體實現邏輯前,我們先通過一個例子來先了解下其基本用法然后進行使用頁面展示效果如下看著好。本篇文章是細談 vue 系列第二篇了,上篇我們已經細談了 vue 的核心之一 vdom,傳送門 今天我們將分析我們經常使用的 vue 功能 slot 是如何設計和實現的,本文將圍...
摘要:注意事項聲明函數時候處理業務邏輯區分和單例的區別,配合單例實現初始化構造函數大寫字母開頭推薦注意的成本。簡單工廠模式使用一個類通常為單體來生成實例。 @(書籍閱讀)[JavaScript, 設計模式] 常見設計模式 一直對設計模式不太懂,花了一下午加一晚上的時間,好好的看了看各種設計模式,并總結了一下。 設計模式簡介 設計模式概念解讀 設計模式的發展與在JavaScript中的應用 ...
閱讀 2947·2023-04-25 19:20
閱讀 794·2021-11-24 09:38
閱讀 2053·2021-09-26 09:55
閱讀 2439·2021-09-02 15:11
閱讀 2054·2019-08-30 15:55
閱讀 3616·2019-08-30 15:54
閱讀 3155·2019-08-30 14:03
閱讀 2968·2019-08-29 17:11