ES7/ES2016新特性

includes()

includes和indexOf类似,都可以用来判断一个数组是否包含一个指定的值。不同的是:indexOf会返回一个元素在数组中的位置,如果没有找到该元素则返回-1;includes则返回true或false。

let arr = ["react", "angular", "vue"];

console.log(arr.indexOf("react"));

console.log(arr.includes("react"));

includes() 方法也可以用于判断字符串是否包含指定的子字符串。

let str = "Hello world, welcome to the Runoob。";
console.log(str.includes("world"));

includes第二可选参数fromIndex,它允许从特定位置开始寻找匹配。如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。默认为 0。

console.log([1, 2, 3].includes(2)); // === true)
console.log([1, 2, 3].includes(4)); // === false)
console.log([1, 2, NaN].includes(NaN)); // === true)
console.log([1, 2, -0].includes(+0)); // === true)
console.log([1, 2, +0].includes(-0)); // === true)
console.log(["a", "b", "c"].includes("a")); // === true)
console.log(["a", "b", "c"].includes("a", 1)); // === false)

includes() 和 indexOf()只能判断简单类型的数据,对于复杂类型的数据,比如对象类型的数组,二维数组,这些,是无法判断的。

let arr = [1, [2, 3], 4];
arr.includes([2, 3]);  //false
arr.indexOf([2, 3]);    //-1

虽然两者都是采用 === 的操作符来作比较的,但是对于NaN的处理结果并不相同。在js中 NaN === NaN 的结果是false,indexOf()也是这样处理的,但是includes()不是这样的。

let arr = [1, NaN, 2, 3];
arr.indexOf(NaN);  //-1
arr.includes(NaN);  //true

求幂运算符**

求幂运算符**,**和Math.pow()都可以用于求幂运算,并且可以和 += 一样的用法。

// 递归函数
const calculateExponent = (base, exponent) => base * ((--exponent > 1) ? calculateExponent(base, exponent) : base);
console.log(calculateExponent(3, 2)); // 9

// 求幂运算符
console.log(3 ** 2);  // 9

// pow() 方法
console.log(Math.pow(3, 2)); // 9

let a = 3;
a **= 2;
console.log(a); // 9
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值