加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

JS逻辑运算符包括几种 特征是什么

发布时间:2023-08-05 11:02:41 所属栏目:语言 来源:
导读:这篇文章给大家分享的是“JS逻辑运算符包括几种,特点是什么”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下吧。Js中的逻辑运算符JavaScript中有三个

这篇文章给大家分享的是“JS逻辑运算符包括几种,特点是什么”,对大家学习和理解有一定的参考价值和帮助,有这方面学习需要的朋友,接下来就跟随小编一起学习一下吧。

Js中的逻辑运算符

JavaScript中有三个逻辑运算符,&&与、||或、!非,虽然他们被称为逻辑运算符,但这些运算符却可以被应用于任意类型的值而不仅仅是布尔值,他们的结果也同样可以是任意类型。

描述

如果一个值可以被转换为true,那么这个值就是所谓的truthy,如果可以被转换为false,那么这个值就是所谓的falsy。会被转换为false的表达式有: null、NaN、0、空字符串、undefined。

尽管&&和||运算符能够使用非布尔值的操作数,但它们依然可以被看作是布尔操作符,因为它们的返回值总是能够被转换为布尔值,如果要显式地将它们的返回值或者表达式转换为布尔值,可以使用双重非运算符即!!或者Boolean构造函数。

&&: AND,逻辑与,expr1 && expr2,若expr1可转换为true则返回expr2,否则返回expr1。

||: OR,逻辑或,expr1 || expr2,若expr1可转换为true则返回expr1,否则返回expr2。

!: NOT,逻辑非,!expr,若expr可转换为true则返回false,否则返回true。

JS逻辑运算符的特点

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

1. 取反 !

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

<script type="text/javascript">

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

</script>

2. 逻辑与 &&

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

<script type="text/javascript">

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

</script>

3. 逻辑或 ||

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

<script type="text/javascript">

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

</script>

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章