Javascript中有哪些强大的运算符,用法是怎样
Admin 2022-07-07 群英技术资讯 867 次浏览
在这篇文章中,我们来学习一下“Javascript中有哪些强大的运算符,用法是怎样”的相关知识,下文有详细的讲解,易于大家学习和理解,有需要的朋友可以借鉴参考,下面就请大家跟着小编的思路一起来学习一下吧。你在阅读其他人的代码的时候,有没有遇见一些奇怪的写法,让你的思路瞬间卡住,等你回过神来便不明觉厉,某位大侠曾经来过这里。
今天,我们就来盘点一下 JavaScript 中一些强大的运算符吧~~~
如果你第一次遇到它,看到的是两个问号,估计脑海里还有更多的问号(小朋友,你是否有很多问号~~~)
两个问号??其美名曰空值合并操作符,如果第一个参数不是 null/undefined,将返回第一个参数,否则返回第二个参数。
console.log(1 ?? "www.shanzhzonglei.com"); // 1 console.log(false ?? "www.shanzhzonglei.com"); // false console.log(null ?? "www.shanzhzonglei.com"); // www.shanzhzonglei.com console.log(undefined ?? "www.shanzhzonglei.com"); // // www.shanzhzonglei.com
所以,只有当第一个参数是 null/undefined 的时候,才返回第二个参数。
注意,虽然 JS 中的未定义 undefined、空对象 null、数值 0、空数字 NaN、布尔 false,空字符串''都是假值,但??非空运算符只对 null/undefined 做处理。
它与逻辑或操作符(||)不同,逻辑或操作符会在左侧操作数为假值时返回右侧操作数。比如为假值('' 或 0)时。
console.log(1 || 2); // 1
console.log("" || 2); // 2
哦,现在还不止两个问号,还多了一个等号,题目越来越难了么?
??=空赋值运算符,仅当值为 null 或 undefined 时,此赋值运算符才会赋值。
const student = { age: 20 };
student.age ??= 18;
console.log(student.age); // 20
student.name ??= "shanguagua";
console.log(student.name); // 'shanguagua'
它和上面的??空值合并运算符是有联系的:x ??= y等价于x ?? (x = y),只有当 x 为 null 或 undefined 时,x = y才会执行。
let x = null; x ??= 20; console.log(x); // 20 let y = 5; y ??= 10; console.log(y); // 5
可选链操作符?.允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。操作符会隐式检查对象的属性是否为 null 或 undefined,代码更加优雅简洁。
const obj = {
name: "山呱呱",
foo: {
bar: {
baz: 18,
fun: () => {},
},
},
school: {
students: [
{
name: "shanguagua",
},
],
},
say() {
return "www.shanzhonglei.com";
},
};
console.log(obj?.foo?.bar?.baz); // 18
console.log(obj?.school?.students?.[0]["name"]); // shanguagua
console.log(obj?.say?.()); // 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
先来复习一下吧:
逻辑与(&&):当第一个操作数为 true 时,将不会判断第二个操作数,因为无论第二个操作数为何,最后的运算结果一定是 true。
实际开发中,利用设个特性,可实现如下操作:
1、如果某个值为 true,则运行某个 function
function say() {
console.log("www.shanzhonglei.com");
}
let type = true;
type && say(); // www.shanzhonglei.com
2、判断某个值
// 如果age大于10并且小于20才会执行
if (age > 10 && age < 20) {
console.log(age);
}
逻辑或(||): 当第一个操作数为 false 时(也就是 js 的假值),将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的运算结果一定是 false。
实际开发中,利用设个特性,可实现如下操作:
1、给某个变量设置初始值
let student = {
name: "shanguagua",
};
console.log(student.age || "www.shanzhonglei.com"); // www.shanzhonglei.com
2、判断某个值
// 如果age等于10或者等于20或者等于30都执行
if (age === 10 || age === 20 || age === 30) {
console.log(age);
}
位运算符是按位进行运算,&(与)、|(或),使用位运算符时会抛弃小数位,我们可以利用|0来给数字取整。也可以使用&1来判断奇偶数。
实际开发中,利用设个特性,可实现如下操作:
1、取整
1.3 |
(0 - // 打印出 1
1.9) |
0; // 打印出 -1
2、判断奇偶数
let num = 5; !!(num & 1); // true !!(num % 2); // true
可以使用双位操作符来替代正数的 Math.floor( ),替代负数的 Math.ceil( )。
双否定位操作符的优势在于它执行相同的操作运行速度更快,对正数来说~~运算结果与 Math.floor( ) 运算结果相同,而对于负数来说与 Math.ceil( ) 的运算结果相同。
Math.floor(5.2) === 5; // true ~~3.2 === 3; // true Math.ceil(-6.6) === -6; // true ~~-4.5 === -6; // true
!,可将变量转换成 boolean 类型,null、undefined 和空字符串''取反都为 true,其余都为 false。一般来说会有好几种用法,!,!!,!=,!==。
let cat = false; console.log(!cat); // true
判断变量 a 不等于 null,undefined 和''才能执行的方法。
var a;
if (a != null && typeof a != undefined && a != "") {
//a有内容才执行的代码
}
等价于:
if (!!a) {
//a有内容才执行的代码...
}
一般来说都是用的全不等于!==,因为使用不等于!=的话,0 != ""返回的是 false,原因是 JS 中 0 和''转化成布尔型都为 false,所以推荐还是使用全不等于!==。
let a = 0; let b = 0; let c = "0"; let d = ''; a != b //false a != c // false number和string的0 被判断为相等 a != d // false 0和空字符串被判断为相等 a !== b // false a !== c // true a !== d // true
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本篇文章给大家带来了关于javascript的相关知识,其中主要整理了异步与回调的基本概念的相关问题,同步,一般指按照预定的顺序依次执行任务,只有当上一个任务完成后,才开始执行下一个任务,异步,与同步相对应,异步指的是让CPU暂时搁置当前任务,先处理下一个任务,当收到上个任务的回调通知后,再返回上个任务继续执行,下面一起来看一下,希望对大家有帮助。
这篇文章主要介绍JS中的Canvas的内容,很多新手对Canvas绘制图形,使用和实现动画效果等等可能不是很了解,因此这篇文章就汇总了一些实例给大家做个参考,感兴趣的朋友可以看看,希望大家阅读完这篇文章能有所收获。
效果图JSimport { Fragment, useState } from react;import styles from ./style.less;const data1 = [ { name: 人口, id: 1, arr: [ { nam
实现方法:1、给按钮绑定点击事件并指定一个事件处理函数;2、在事件处理函数中利用“document.getElementById(出现元素对象).style.display="block";”语句设置点击按钮元素显示即可。
这篇文章主要介绍了JavaScript/TypeScript 实现并发请求控制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008