html支持js逻辑吗,JavaScript 比较

本文详细介绍了JavaScript中的逻辑运算符:取反(!)、逻辑与(&&)和逻辑或(||)的工作原理。通过实例展示了各种数据类型在这些运算符下的转换规则,包括null、undefined、0、NaN、空字符串等特殊情况的处理。此外,还讨论了短路计算的概念及其在不同运算符中的应用。
摘要由CSDN通过智能技术生成

首先说一下,其他数据类型转换为布尔类型的规则: null、undefined、0、NaN、空字符串转换为false,其他转化为 true。

JavaScript 中有三种逻辑运算符:

1. 取反 !

首先把数据转化为布尔值,然后取反,结果为 true 或 false。

var a = [1,2,3];

var b = "hello";

var obj = new Object();

var d;

console.log(!""); //true

console.log(!d); //true

console.log(!a); //false

console.log(!b); //false

console.log(!obj); //false

2. 逻辑与 &&

JavaScript 中逻辑与和其他语言不太一样,如果第一个操作数是 true(或者能够转为 true),计算结果就是第二个操作数,如果第一个操作数是 false,结果就是 false(短路计算),对于一些特殊数值不遵循以上规则。(个人理解为:如果运算的第一个操作数为true,则返回第二个操作数,反之则返回第一个操作数)

var a = [1,2,3];

var b = "hello";

var obj = new Object();

var d;

console.log(true && 10); //第一个操作数是true,结果是第二个操作,也就是10

console.log(false && b); //第一个操作数是false,结果flase

console.log(100 && false); //第一个操作数是100,结果flase

console.log(undefined && false); //第一个操作数是undefined,结果undefined

console.log(NaN && false); //第一个操作数是NaN,结果NaN

console.log(null && false); //第一个操作数是null,结果null

console.log('' && false); //第一个操作数是空串,结果空串

console.log(0 && 100); //结果是0

console.log(5 && 100); //100

console.log(a && b); //hello

console.log(obj && 200); //200

3. 逻辑或 ||

如果第一个操作数不是 false,结果就是第一个操作数,否则结果是第二个操作数。如果第一个操作数能够转为 true,结果就是第一个操作数(个人理解为:如果运算的第一个操作数为 true,则返回第一个操作数,反之则返回第二个操作数)

var a = [1,2,3];

var b = "hello";

var obj = new Object();

var d;

console.log(true || 10); //第一个操作数是true,结果是第一个操作,也就是true

console.log(false || b); //第一个操作数是false,结果是第二个操作数b

console.log(100 || false); //第一个操作数是100,结果100

console.log(undefined || 9); //第一个操作数是undefined转false,结果9

console.log(NaN || false); //第一个操作数是NaN转false,结果第二个操作数

console.log(null || a); //第一个操作数是null转false,结果a

console.log('' || false); //第一个操作数是空串转false,结果第二操作数

console.log(0 || 100); //结果是100

console.log(5 || 100); //5

console.log(a || b); //a

console.log(obj || 200); //obj

笑醉踏歌

笑醉踏歌

750***319@qq.com3年前 (2018-07-06)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值