ES6实用运算符

可选链操作符 ?.

概念: 可选链操作符 ( ?. ) 允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。?. 操作符的功能类似于 . 链式操作符,不同之处在于,在引用为空 (nullish ) (null 或者 undefined) 的情况下不会引起错误,该表达式短路返回值是 undefined。与函数调用一起使用时,如果给定的函数不存在,则返回 undefined

let a = undefined
let b = a ?.name
// b = a.name 程序会报错崩溃,因为undefined是不允许.运算的
// b = undefined
// 会先去判断b是否是undefined/null, 再去判断是否有name值,如果判断失败直接返回undefined
// 而不会程序报错

空值合并运算符 ??

概念: 空值合并操作符(??)是一个逻辑操作符,当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数

let a = undefined ?? 'default name'
// a = 'default name'

逻辑或赋值 ||=

概念: 逻辑或正义(x ||= y)只是在x为falsy(虚值)时赋值
虚值: false, undefined, null, NaN, ‘’, 0

let a = ''
a ||= 'hello word'
console(a) 
a ||= '你好'
// 'hello word'
// 'hello word'

逻辑与赋值 &&=

概念: 逻辑与赋值 ( x &&= y) 仅在 x 是 truthy(真值)时对其赋值
truthy: 除虚值以外的所有值 (见逻辑或赋值)

let a = 1
let b = 0
a &&= 2
b &&= 3
// a=2,b=0

逻辑空属性 ??=

概念: 逻辑空赋值运算符 (x ??= y) 仅在 x 是 nullish (null 或 undefined) 时对其赋值

let a = {
	name: '小明'
}
a.name ??= '小红'
a.age ??= 25

console.log(a.name)
console.log(a.age)
// 小明 25
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
扩展运算符(Spread Operator)是ES6中的一个新特性,它可以将一个可迭代的对象(如数组、字符串、Set等)展开成多个元素,或者将多个元素合并成一个数组。 以下是扩展运算符的用法: 1. 展开成多个元素 可以使用扩展运算符将一个数组展开成多个元素: ```javascript const arr = [1, 2, 3]; console.log(...arr); // 1 2 3 ``` 可以使用扩展运算符将一个字符串展开成多个字符: ```javascript const str = "hello"; console.log(...str); // h e l l o ``` 2. 合并成一个数组 可以使用扩展运算符将多个数组合并成一个数组: ```javascript const arr1 = [1, 2, 3]; const arr2 = [4, 5, 6]; const arr3 = [...arr1, ...arr2]; console.log(arr3); // [1, 2, 3, 4, 5, 6] ``` 可以使用扩展运算符将多个可迭代的对象合并成一个数组: ```javascript const set = new Set([1, 2, 3]); const str = "hello"; const arr = [...set, ...str]; console.log(arr); // [1, 2, 3, "h", "e", "l", "l", "o"] ``` 3. 函数调用时传参 可以使用扩展运算符将一个数组作为参数传入函数: ```javascript function sum(a, b, c) { return a + b + c; } const arr = [1, 2, 3]; console.log(sum(...arr)); // 6 ``` 可以使用扩展运算符将多个数组作为参数传入函数: ```javascript function sum(a, b, c, d, e) { return a + b + c + d + e; } const arr1 = [1, 2]; const arr2 = [3, 4]; const arr3 = [5]; console.log(sum(...arr1, ...arr2, ...arr3)); // 15 ``` 以上就是扩展运算符的用法。它可以使我们的代码更简洁、更易读,是一个非常实用的特性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值