簡體   English   中英

JavaScript邏輯運算符內部

[英]JavaScript logical operators internals

在閱讀JavaScript文檔時,我遇到了一個讓我感到困惑的部分

“邏輯運算符通常與布爾(邏輯)值一起使用;當它們使用時,它們將返回布爾值。但是,&&和||運算符實際上返回指定操作數之一的值,因此,如果這些運算符與non -布爾值,它們可以返回非布爾值,邏輯運算符如下表所示。

&& Operator: expr1 && expr2

(邏輯與)如果可以將其轉換為false,則返回expr1;否則返回false。 否則,返回expr2。 因此,當與布爾值一起使用時,&&如果兩個操作數都為true,則返回true;否則為false。 否則,返回false。

|| Operator: expr1 || expr2

(邏輯或)如果可以將其轉換為true,則返回expr1;否則,返回false。 否則,返回expr2。 因此,當與布爾值一起使用時,|| 如果任一操作數為true,則返回true;否則為false。 如果兩者均為假,則返回false。”

假設您有:

var a3 = false && true; 

因此,考慮到“ and”運算符的規則,變量“ a3”應包含值true,因為“ false”不能轉換為false。

單詞“可以轉換為假”的選擇源於具有truefalse值的JavaScript。

所有的值可以被轉換為一個或truthyfalsey。

false是falsey,因此不會進行任何類型轉換 ,但是其他值將轉換為false,例如:

undefined, null, NaN, 0, ""

因此,and語句將返回false而不是true ,因為false已經是false並且不需要轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM