[英]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。
單詞“可以轉換為假”的選擇源於具有true和false值的JavaScript。
所有的值可以被轉換為一個或truthy值falsey。
false
是falsey,因此不會進行任何類型轉換 ,但是其他值將轉換為false,例如:
undefined, null, NaN, 0, ""
因此,and語句將返回false
而不是true
,因為false
已經是false
並且不需要轉換。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.