JavaScript中有哪些强大的运算符

  介绍

小编给大家分享一下JavaScript中有哪些强大的运算符,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!

一、? ?空值合并运算符

如果你第一次遇到它,看到的是两个问号,估计脑海里还有更多的问号(小朋友,你是否有很多问号~ ~ ~)

两个问号? ?其美名曰空值合并操作符,如果第一个参数不是null/未定义,将返回第一个参数,否则返回第二个参数。

console.log (1, ? ?,“www.shanzhzonglei.com");//, 1   console.log (false  ? ?,“www.shanzhzonglei.com");//,假的   console.log (null  ? ?,“www.shanzhzonglei.com");//, www.shanzhzonglei.com   console.log (undefined  ? ?,“www.shanzhzonglei.com"),,//,//, www.shanzhzonglei.com

所以,只有当第一个参数是零/未定义的时候,才返回第二个参数。

注意,虽然JS中的未定义定义,空对象空,数值0,空数字南布尔假,空字符串& # 39;& # 39;都是假值,但? ?非空运算符只对null/未定义做处理。

它与逻辑或操作符(| |)不同,逻辑或操作符会在左侧操作数为假值时返回右侧操作数比。如为假值(& # 39;& # 39;或0)时。

console.log (1, | |, 2);//, 1   console.log (““, | |, 2),,//, 2

二,? ?=空赋值运算符

哦,现在还不止两个问号,还多了一个等号,题目越来越难了么?

? ?=空赋值运算符,仅当值为null或未定义时,此赋值运算符才会赋值。

const  student =,{,年龄:20,};   student.age  ? ?=, 18;   console.log (student.age);//, 20      student.name  ? ?=,“shanguagua";   console.log (student.name);,//, & # 39; shanguagua& # 39;

它和上面的? ?空值合并运算符是有联系的:x ? ?x=y等价于? ?x (x=y),只有当为零或未定义时,x=y才会执行。

let  x =,空;   x  ? ?=, 20;   console.log (x);//, 20      let  y =, 5;   y  ? ?=, 10;   console.log (y);,//, 5

三?。可选链操作符

可选链操作符?。允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。操作符会隐式检查对象的属性是否为零或未定义,代码更加优雅简洁。

const  obj =, {   ,,名字:“山呱呱“,   ,,foo: {   酒吧,,,,,{   ,,,,,记者:,18日   ,,,,,乐趣:,(),=祝辞,{},   ,,,},   ,,},   ,,学校:{   ,,,学生:,(   ,,,,,{   ,,,,,,,名字:,“shanguagua",   ,,,,,},   ,,,,   ,,},   说(),{才能   ,,,return “www.shanzhonglei.com";   ,,},   };      console.log (obj ? . foo . bar ? .baz);//, 18岁   console.log (obj ? .school .students ?。[0] [“name"]);,//shanguagua   console.log (obj ?嘿。());,//,www.shanzhonglei.com

四吗?:三元运算符

它也叫三目运算符,额,这个就很常用了。

对于条件表达式b ?x, y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值,否则,计算y的值,运算结果为y的值。

console.log (false  ?, 1,:, 2);//, 2   console.log (true  ?, 1,:, 2),,//, 1

五、逻辑与(,,)和逻辑或(| |)

先来复习一下吧:

逻辑与(,,):当第一个操作数为真时,将不会判断第二个操作数,因为无论第二个操作数为何,最后的运算结果一定是真的。

实际开发中,利用设个特性,可实现如下操作:

1,如果某个值为true,则运行某个函数

function 说(),{   console.log才能(“www.shanzhonglei.com");   }   let  type =,真的;   type ,,,说(),,//,www.shanzhonglei.com

2,判断某个值

//,如果年龄大于10并且小于20才会执行   10 if  (age 祝辞,,,,,age  & lt;, 20), {   console.log才能(年龄);   }

逻辑或(| |):当第一个操作数为假时(也就是js的假值),将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的运算结果一定是假的。

实际开发中,利用设个特性,可实现如下操作:

1,给某个变量设置初始值

let  student =, {   ,,名字:“shanguagua",   };      console.log (student.age  | |,“www.shanzhonglei.com");,//, www.shanzhonglei.com

2,判断某个值

//,如果年龄等于10或者等于20或者等于30都执行   if  (age ===, 10, | |, age ===, 20, | |, age ===, 30), {   console.log才能(年龄);   }

JavaScript中有哪些强大的运算符