美文网首页js
3 个特别好用的 JavaScript 运算符

3 个特别好用的 JavaScript 运算符

作者: 源大侠 | 来源:发表于2021-06-21 13:58 被阅读0次

大家好,本教程将介绍大多数初学者都不知道的3种出色的JS运算符,真的非常有用又省时哦。
这3个运算符是:
空值合并运算符(??)
逻辑空赋值(??=)
可选链运算符(?.)
为了更好地帮助大家理解,我会逐个讨论这些运算符,并举例说明。

1. 空值合并运算符(??)

语法:a??b

  • 如果定义了a,则输出为a
  • 如果a未定义/Nullish(NULL或UNDEFINED),则输出为b

换句话说,如果第一个参数不是null或未定义,则空值合并运算符(??)返回第一个参数,否则返回第二个参数。
举例:

let a=NULL
console.log(a??50) //50
console.log(a) //NULL
let a=10
let c=30
console.log(a??b??c??d) //10
//gives output, the first defined value

2. 逻辑空赋值(??=)

语法:a??=b
上面的语法等效于a ?? (a=b)
如果a不是NULLISH(Null或Undefined),则输出为a
如果a是NULLISH,则输出为b,并且b的值分配给a
举例:

let a=NULL
console.log(a??=50) //50
console.log(a) //50
//compare the output of a from the previous example.

3. 可选链运算符(?.)

语法:obj ?. prop
如果obj的值存在,则类似于obj.prop
否则,若obj的值未定义或是null,则返回undefined。
通过使用?.带对象的运算符,而不是仅使用点.运算符,JavaScript会在尝试访问obj.prop之前隐式检查以确保obj不为null或未定义。
注意:obj也可以嵌套,例如obj.name?.firstname。
举例:

let obj= {
   person:{
       firstName:"John",
       lastName:"Doe"
   },

   occupation: {
       compony:'capscode',
       position:'developer'
   },
   fullName: function(){
       console.log("Full Name is: "+ this.person.firstName+" >"+this.person.lastName)
  }
}
console.log(obj . person . firstName) //John
console.log(obj . human . award) //TypeError: Cannot read property 'award' of undefined
console.log(obj ?. human . award) //TypeError: Cannot read property 'award' of undefined
console.log(obj . human ?. award) //undefined
delete obj?.firstName;  // delete obj.firstName if obj exists
obj . fullName ?. () //logs John Doe
obj ?. fullName() //logs John Doe
obj . fullDetails() // TypeError: obj.fullDetails is not a function
obj ?. fullDetails() // TypeError: obj.fullDetails is not a function
obj.fullDetails ?. () //undefined

总结一下,可选链?.语法有三种形式:

  • obj?.prop——如果obj存在,则返回obj.prop,否则为undefined。
  • obj?.[prop]——如果obj存在,则返回obj[prop],否则返回undefined。
  • obj.method?.()——如果obj.method存在,则调用obj.method(),否则返回undefined。

相关文章

  • 3 个特别好用的 JavaScript 运算符

    大家好,本教程将介绍大多数初学者都不知道的3种出色的JS运算符,真的非常有用又省时哦。这3个运算符是:空值合并运算...

  • 运算符

    JavaScript的运算符按运算符类型可以分为以下5种: (1)算术运算符;(2)比较运算符;(3)赋值运算符;...

  • JavaScript逻辑运算符与赋值运算符

    逻辑运算符 JavaScript中有三个逻辑运算符,&&与、||或、!非。 JavaScript 中的逻辑运算符可...

  • Javascript运算符

    JavaScript 运算符 JavaScript 运算符用于赋值,比较值,执行算术运算等。 JavaScript...

  • javaScript运算符

    javaScript算术运算符 javaScript赋值运算符 用于字符串的 + 运算符 + 运算符用于把文本值或...

  • javascript学习思维导图

    JavaScript 数据类型 JavaScript 变量 Javascript 运算符 JavaScript 流...

  • JavaScript 学习脑图

    javascript数据类型 javascript变量 javascript运算符 javascript数组 ja...

  • 8/23

    JavaScript运算符: 运算符 = 用于赋值 运算符 + 用于加值 算数运算符 + - * / % ++ -...

  • [转载]扩展运算符...

    原文:JavaScript 扩展运算符 扩展运算符格式 扩展运算符格式很简单,就是三个点(...) 扩展运算符作用...

  • 03-JavaScript运算符

    JavaScript运算符 和数学的运算符一样,JavaScript中的运算符是告诉程序执行特定算术或逻辑操作的符...

网友评论

    本文标题:3 个特别好用的 JavaScript 运算符

    本文链接:https://www.haomeiwen.com/subject/mtsyyltx.html