&&、逻辑或||和逻辑非!。
| 第一个操作数 | 第二个操作数 | 运算结果 |
|---|---|---|
| true | true | true |
| true | false | false |
| false | true | false |
| false | false | false |
var user; //定义变量
(! user && console.log("没有赋值")); //返回提示信息“没有赋值”
等效于:
var user; //定义变量
if (! user){ //条件判断
console.log("变量没有赋值");
}
var user = 0; //定义并初始化变量
(! user && console.log("变量没有赋值")); //返回提示信息“变量没有赋值”
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
版权说明:Copyright © 广州松河信息科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州松河信息科技有限公司 版权所有