javascript基础:逻辑运算符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript基础:逻辑运算符相关的知识,希望对你有一定的参考价值。

1、&&/||返回能够被转换为布尔值的值

&&操作符不一定返回布尔值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。

console.log(function(){} && -1);

-1

特殊情况:

console.log(NaN && -1);

NaN

console.log([] && -1);

-1

如果逻辑与比较左边的运算结果为true,则返回最后一位比较结果。

console.log(true && {} && 0);

0

最后的结果为0,因为0转换为布尔值为false。因此在判断中

if(true && {} && 0)

     alert(‘ok’);

else

     alert(‘fail’);

中,将弹出fail。

2、逻辑运算符在实际中的运用

同行执行多个计算:

fun1() && fun2();

如果fun1运算结果为true,则继续执行fun2,它不计较fun2最后返回的是什么结果。

var aa = aa || 1;
console.log(aa);

1

这利用了||会返回结果的特性。如果aa已定义,则返回aa定义的值,如果没有,则返回数字1。

var a = 1 && [];
console.log(a);

[]

如果一个函数不返回结果,则默认返回undefined。

function Y(){
}
console.log(Y());

undefined

以上是关于javascript基础:逻辑运算符的主要内容,如果未能解决你的问题,请参考以下文章

10个JavaScript代码片段,使你更加容易前端开发。

JavaScript基础语法整理

JS基础(JavaScript三大特点基本数据类型检测逻辑运算符的短路运算几大循环结构的特点)

JavaScript 基础笔记总结(全部)

JavaScript 基础知识汇总目录

JavaScript基础之算术运算符 前后增量/前后减量运算符 比较运算符逻辑运算符 程序流程控制