js常用操作

js可选链操作符(?.)和空值合并操作符(??)

可选链操作符(?.)用于访问可能为 null 或 undefined 的属性或方法,以避免出现错误。例如:

const person = {
  name: 'John',
  age: 30
};

const jobTitle = person.job?.title; // 如果 person.job 存在,则返回 job 的 title 属性,否则返回 undefined

空值合并操作符(??)用于提供默认值。当左侧的值为 null 或 undefined 时,将返回右侧的值。例如:

const name = person.name ?? 'Unknown'; // 如果 person.name 存在且不为 null 或 undefined,则返回 person.name,否则返回 'Unknown'

结合使用可选链操作符和空值合并操作符的例子:

const jobTitle = person.job?.title ?? 'Unknown';

在这个例子中,如果 person 对象中没有 job 属性,或者 job 对象中的 title 属性为 null 或 undefined,那么 jobTitle 将会被赋值为 ‘Unknown’。这样我们可以安全地访问属性并提供默认值。

js常用方法

1:array.includes(element, start)

判断一个数组中是否包含某个元素,array是要进行检查的数组,element是要查找的元素,start是可选参数,表示开始查找的位置,默认为0。

const names = ["abc", "cba", "nba", "why", NaN]
console.log(names.includes(NaN)) // true

2:平方运算符

在ES7之前,计算数字的平方需要通过 Math.pow 方法来完成。在ES7中,增加了 ** 运算符,可以对数字来计算平方。

const result1 = Math.pow(3, 3)
const result2 = 3 ** 3
console.log(result1, result2)

3:Object values

之前我们可以通过 Object.keys 获取一个对象所有的key,在ES8中提供了 Object.values 来获取所有的value值。

const obj = {
  name: "why",
  age: 18,
  height: 1.88
}

console.log(Object.values(obj)) // [ 'why', 18, 1.88 ]

// 如果传入一个字符串
console.log(Object.values("abc")) // [ 'a', 'b', 'c' ]

4:Object entries

通过Object.entries 可以获取到一个数组,数组中会存放可枚举属性的键值对数组。

const obj = {
  name: "why",
  age: 18,
  height: 1.88
}

console.log(Object.entries(obj)) // [ [ 'name', 'why' ], [ 'age', 18 ], [ 'height', 1.88 ] ]
for (const entry of Object.entries(obj)) {
  const [key, value] = entry
  console.log(key, value)
}

// 如果是一个数组
console.log(Object.entries(["abc", "cba", "nba"])) // [ [ '0', 'abc' ], [ '1', 'cba' ], [ '2', 'nba' ] ]

// 如果是一个字符串
console.log(Object.entries("abc")) // [ [ '0', 'a' ], [ '1', 'b' ], [ '2', 'c' ] ]

5:find()

find() 用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。

const numbers = [1, 2, 3, 4, 5];

const result = numbers.find((num) => num > 3);

console.log(result); // 输出:4

6: filter()

filter()方法创建一个包含所有通过测试函数的元素的新数组。如果没有元素满足测试函数,则返回一个空数组。

const numbers = [1, 2, 3, 4, 5];

const result = numbers.filter(function(num) {
  return num > 3;
});

console.log(result); // 输出:[4, 5]

7:some()

some 为数组中的每一个元素执行一次 callback 函数,直到找到一个使得 callback 返回一个“真值”(即可转换为布尔值 true 的值)。如果找到了这样一个值,some 将会立即返回 true。

const numbers = [1, 2, 3, 4, 5];

const result = numbers.some(function(num) {
  return num > 3;
});

console.log(result); // 输出:true

8:every()

every()方法用于检查数组中的所有元素是否都满足指定条件。它返回一个布尔值。

const numbers = [1, 2, 3, 4, 5];

const result = numbers.every(function(num) {
  return num > 0;
});

console.log(result); // 输出:true

9:map()

map()用于对数组中的每个元素执行指定操作,并返回一个新的数组,新数组的元素是对原数组元素操作后的结果。

const numbers = [1, 2, 3, 4, 5];

const result = numbers.map(function(num) {
  return num * 2;
});

console.log(result); // 输出:[2, 4, 6, 8, 10]
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值