にはアンパサンドが付いています。 es6 では、「&&」は論理 AND 演算子であり、AND ブール演算です。構文は「オペランド 1 && オペランド 2」です。両方のオペランドが true の場合のみ true を返し、それ以外の場合は false を返します。論理 AND は短絡論理の一種で、左側の式が false の場合、結果が直接短絡されて返され、右側の式は評価されなくなります。
このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。
es6 には & 記号があり、「&&」は論理 AND 演算子です。
論理 AND 演算&&
論理 AND 演算 (&&) は、AND ブール演算です。両方のオペランドが true の場合にのみ true を返し、それ以外の場合は false を返します。詳細な説明を表に示します。
2 番目のオペランド | 演算結果 | |
---|---|---|
true | true | |
false | false | |
false | ##false | ##false|
論理 AND は短絡論理の一種で、左側の式が false の場合、結果は短絡されて直接返され、上の式は権利は評価されなくなります。演算ロジックは次のとおりです。 |
例 1
var user; //定义变量 (! user && console.log("没有赋值")); //返回提示信息“没有赋值”
var user; //定义变量 if (! user){ //条件判断 console.log("变量没有赋值"); }
var user = 0; //定义并初始化变量 (! user && console.log("变量没有赋值")); //返回提示信息“变量没有赋值”
例 2
論理 AND 演算子を使用すると、複数の分岐構造の設計を置き換えることができます。var n = 3; (n == 1) && console.log(1); (n == 2) && console.log(2); (n == 3) && console.log(3); ( ! n ) && console.log("null");
var n = 3; switch(n){ case1: console.log(1); break; case2: console.log(2); break; case3: console.log(3); break; default: console.log("null");
console.log(typeof ({} && true)); //返回第二个操作数的值 true的类型:布尔型 console.log(typeof (true && {})); //返回第二个操作数的值 {}的类型:对象
console.log(typeof ("null" && null)); //返回null的类型:对象 console.log(typeof (null && "null")); //返回null的类型:对象
console.log(typeof ("NaN" && NaN)); //返回NaN的类型:数值 console.log(typeof (NaN && "NaN")); //返回NaN的类型:数值
console.log(typeof ("Infinity" && Infinity)); //返回第二个操作数Infinity的类型:数值 console.log(typeof (Infinity && "Infinity")); //返回第二个操作数"Infinity"的类型:字符串
console.log(typeof ("undefined" && undefined)); //返回undefined console.log(typeof (undefined && "undefined")); //返回undefined
誰もが知っているように、es6 では論理演算子 &&および条件を表します。||if/else の代わりに or 条件
let info = { name:"long", age:null }; //&& //info的name与age同时为真,则结果为真 if(info.name && info.age){ console.log("与条件"); //与条件 }else{ console.log("失败"); } //|| //info的name或age,只要有一个为真,则结果为真 if(info.name || info.age){ console.log("或条件"); //或条件 }else{ console.log("失败"); }
let info = {name:"long"}; let name = info && info.name; //long let isVip = false; let vipPrice = isVip || 19;//19
decide() && true(); //如果decide()执行后为true,则执行true(),并输出true()的值;如果decide()执行后为false,则输出decide()执行后的结果,且不执行true() //预计使用场景,有一个mongo查询条件where,当name存在时,匹配name数据 where= {age:19}; name && where.name = name;
decide() || false(); //如果decide()执行后为true,则执行decide(),并输出decide()的值,fasle()不执行;如果decide()执行后为false,则执行fasle(),且输出false()的结果
decide() && true() || fasle(); //如果decide()执行后为true,则执行true(),并输出true()的值; //如果decide()执行后为false,则执行false(),并输出false()的值
]
以上がes6 にはアンパサンドはありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。