小编给大家分享一下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中有哪些强大的运算符