千家信息网

JavaScript中有哪些强大的运算符

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,小编给大家分享一下JavaScript中有哪些强大的运算符,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、??空值合并运算符如果你第一次遇到它,看到的是两个问号,估计脑海里还有更多
千家信息网最后更新 2026年11月04日JavaScript中有哪些强大的运算符

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

    一、??空值合并运算符

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

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

    console.log(1 ?? "www.shanzhzonglei.com"); // 1console.log(false ?? "www.shanzhzonglei.com"); // falseconsole.log(null ?? "www.shanzhzonglei.com"); // www.shanzhzonglei.comconsole.log(undefined ?? "www.shanzhzonglei.com"); // // www.shanzhzonglei.com

    所以,只有当第一个参数是 null/undefined 的时候,才返回第二个参数。

    注意,虽然 JS 中的未定义 undefined、空对象 null、数值 0、空数字 NaN、布尔 false,空字符串''都是假值,但??非空运算符只对 null/undefined 做处理。

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

    console.log(1 || 2); // 1console.log("" || 2); // 2

    二、??=空赋值运算符

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

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

    const student = { age: 20 };student.age ??= 18;console.log(student.age); // 20student.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); // 20let 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); // 18console.log(obj?.school?.students?.[0]["name"]); // shanguaguaconsole.log(obj?.say?.()); // www.shanzhonglei.com

    四、?:三元运算符

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

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

    console.log(false ? 1 : 2); // 2console.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; // trueMath.ceil(-6.6) === -6; // true~~-4.5 === -6; // true

    七、逻辑运算符 !

    !,可将变量转换成 boolean 类型,null、undefined 和空字符串''取反都为 true,其余都为 false。一般来说会有好几种用法,!,!!,!=,!==。

    7.1 利用!取反

    let cat = false;console.log(!cat); // true

    7.2 利用!!做类型判断

    判断变量 a 不等于 null,undefined 和''才能执行的方法。

    var a;if (a != null && typeof a != undefined && a != "") {  //a有内容才执行的代码}

    等价于:

    if (!!a) {  //a有内容才执行的代码...}

    7.3 两个值是否相等

    一般来说都是用的全不等于!==,因为使用不等于!=的话,0 != ""返回的是 false,原因是 JS 中 0 和''转化成布尔型都为 false,所以推荐还是使用全不等于!==。

    let a = 0;let b = 0;let c = "0";let d = '';a != b       //falsea != c      // false    number和string的0 被判断为相等a != d      // false    0和空字符串被判断为相等a !== b    // falsea !== c   // truea !== d   // true

    看完了这篇文章,相信你对"JavaScript中有哪些强大的运算符"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

    运算 运算符 操作数 操作符 结果 逻辑 参数 问号 两个 相同 代码 变量 实际 对象 特性 空字符 开发 强大 一般来说 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 瑰夏咖啡 互联网科技有限公司 疫情对互联网科技公司影响 互联网科技缩写 深圳天众互联网科技公司 碳银互联网科技有限公司 广州紫鲸互联网科技 互联网金融和金融科技 中国互联网金融科技基金 卓越科技互联网 招聘 互联网和高科技公司 华服互联网科技官网 深圳市优智互联网科技有限公司 中国互联网公司排名锤子科技 互联网科技公司营业执照怎么办理 为客找房互联网科技公司怎么样 上海互联网科技公司ppt 东营紫格互联网科技 广州燕处互联网科技有限公司 数字互联网科技有限公司 朗新科技与工业互联网 互联网医疗科技 互联网科技创新企业排名 成都玖崟互联网科技有限公司乐商圈怎么样 互联网科技热点资讯 西安小鹰速贷互联网科技有限公司 互联网科技资金流入 广西科技产业互联网是什么 众联互联网络科技 前海云享互联网科技
    0