javascript基础:逻辑运算符
2016-02-13 22:40
661 查看
1、&&/||返回能够被转换为布尔值的值
&&操作符不一定返回布尔值true/false,但总是返回一个能转换为布尔值的值,这决定于用于比较的是什么值。
非0数字转为true,数字0转为false,null、undefined转为false,对象、数组、函数表达式、非空字符串转为true,空字符转为false,函数执行时返回计算结果。
注意即使是空数组或不含任何属性的对象都返回true。
含有NaN类型的比较返回NaN。
&&的操作顺序是从左至右,当左边的计算值为false或转换后的值为false时,右边的值计算值将不再比较。
2、逻辑运算符在实际中的运用
同行执行多个计算:
&&操作符不一定返回布尔值true/false,但总是返回一个能转换为布尔值的值,这决定于用于比较的是什么值。
非0数字转为true,数字0转为false,null、undefined转为false,对象、数组、函数表达式、非空字符串转为true,空字符转为false,函数执行时返回计算结果。
注意即使是空数组或不含任何属性的对象都返回true。
含有NaN类型的比较返回NaN。
&&的操作顺序是从左至右,当左边的计算值为false或转换后的值为false时,右边的值计算值将不再比较。
function t(){
return 0 && -1;
}
console.log(t());
0
上式中,0 && –1逻辑与比较,因为0转换为布尔值为false,因此,-1不再计算比较,只计算左边的值--0。return 0 && -1;
}
console.log(t());
0
console.log(function(){} && -1);
-1
特殊情况:-1
console.log(NaN && -1);
NaN
console.log([] && -1);
-1
如果逻辑与比较左边的运算结果为true,则返回最后一位比较结果。NaN
console.log([] && -1);
-1
console.log(true && {} && 0);
0
最后的结果为0,因为0转换为布尔值为false。因此在判断中0
if(true && {} && 0)
alert(‘ok’);
else
alert(‘fail’);
中,将弹出fail。alert(‘ok’);
else
alert(‘fail’);
2、逻辑运算符在实际中的运用
同行执行多个计算:
fun1() && fun2();
如果fun1运算结果为true,则继续执行fun2,它不计较fun2最后返回的是什么结果。 var aa = aa || 1;
console.log(aa);
1
这利用了||会返回结果的特性。如果aa已定义,则返回aa定义的值,如果没有,则返回数字1。console.log(aa);
1
var a = 1 && [];
console.log(a);
[]
如果一个函数不返回结果,则默认返回undefined。console.log(a);
[]
function Y(){
}
console.log(Y());
undefined
}
console.log(Y());
undefined
相关文章推荐
- WEB前端--JavaScript
- js 中对象属性特性2
- JavaScript 笔记 6 - 循环语句
- JavaScript操作cookie
- zone.js - 暴力之美
- js 中对象属性特性的描述
- JSON说明
- JavaScript中关联原型链属性特性
- JavaScript 笔记 5 - 条件语句
- JavaScript操作class和style样式代码详解
- JavaScript 笔记 4 - 运算符
- javascript基础:等号比较
- json-handle:json可视化工具
- Javascript中this关键字详解
- Javascript闭包——懂不懂由你,反正我是懂了
- js 中对象属性的特性
- JavaScript与正则表达式
- html转pdf,jsf实现下载功能
- jsp页面更改编码为utf-8
- JAVASCRIPT中的作用域和原型链,应该算是难点了,要好好多学学,练练