前一段时间小编一直在更新javascript es6版本的部分新语法和新特性,鉴于现在js一直在更新,接下来小编将和大家一起进步,一块探究js的新特性。今天小编就和大家一起来看看es7更新的语法和新特性。大家还可以关注我的微信公众号,蜗牛全栈。

一、includes
1、基本用法

let arr = ['es6','es7','es8']
console.log(arr.includes('es7')) // true 返回值是布尔,判断数组里面是否包含某个值

2、参数:第一个参数是要查找的元素,第二个元素是从第几个元素开始查找

let arr = ['es6','es7','es8']
console.log(arr.includes('es7',1)) // true 从数组index=1的位置开始查找
console.log(arr.includes('es7',2)) // false
console.log(arr.includes('es7',-1)) // false 从最后一个(es8)开始往后找
console.log(arr.includes('es7',-2)) // true 从最后二个(es8)开始往后找

3、引用数据类型的判断:两种办法只能判断基本数据类型

arr = ['es6',['es7','es8'],'es9']
console.log(arr.includes(['es7','es8'])) // false
console.log(arr.indexOf(['es7','es8'])) // -1

4、关于NaN判断

arr = ['es6',NaN,'es9']
console.log(arr.includes(NaN)) // true
console.log(arr.indexOf(NaN)) // -1 indexOf不能检测NaN

5、判断的严格性:两种方式判断相当三个等号严格判断

arr = ['es6',NaN,'es9']
console.log(arr.includes(NaN)) // true
console.log(arr.indexOf(NaN)) // -1 indexOf不能检测NaN

二、幂运算符(指数运算)

1、封装函数

// 运算2^10
function pow(x,y){
let res = 1
for(let i=0;i<y;i++){
res*=x
}
return res
} console.log(pow(2,10)) // 1024

2、使用Math

console.log(Math.pow(2,10)) // 1024

3、幂运算符

console.log(2**10) // es7新特性

关于使用includes和indexOf情况

  • 判断NaN是不是包含在数组中,只能用includes
  • 只关心是否存在,不关心出现的位置,用includes
  • 需要获取所在的下标,使用indexOf

ES7扩展的更多相关文章

  1. ES6学习(二)基础命令

    一.Let 和 const  作用域的概念:在es5之前是有两个作用域,一个是全局作用域,另外一个是函数作用域,在es6中就多了这样一个块作用域.在这里let 和 const 就是传说中的块作用域,它 ...

  2. js 数组对象深拷贝

    js 数组对象深拷贝 结论:对象的拷贝不能采用直接赋值的方式. 背景 踩过的坑如下: formData本来是父组件传过来的,但是我不想直接用,于是我直接赋值给一个formDataCopy的对象. 但是 ...

  3. ES6之字符串扩展方法(常用)

    es6这个String对象倒是扩展了不少方法,但是很多都是跟字符编码相关,个人选了几个感觉比较常用的方法: includes 搜索字符的神器 还记得我们之前如何判断某个字符串对象是否包含特地字符的吗? ...

  4. ES6新特性:Function函数扩展, 扩展到看不懂

    本文所有Demo的运行环境为nodeJS, 参考:让nodeJS支持ES6的词法----babel的安装和使用 : 函数的默认值: 如果有参数 ,那就用参数, 如果没有参数, 那就用默认的参数: aj ...

  5. echart 扩展地图不显示问题

    今天写项目需要一个安徽地图,但echart自带的安徽地图还是老版的,仍有巢湖市,但客户要求不能有,只好重新找, 后发现ECharts 地图数据在线生成工具 :http://ecomfe.github. ...

  6. ES6 入门系列 - 函数的扩展

    1函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法. function log(x, y) { y = y || 'World'; console.log( ...

  7. 关于ES6扩展属性

    ES6 let和const let命令 只在代码块作用域内有效 不存在变量提升(不能在申明之前赋值) 暂时性死区(在区域内不受外部变量影响) 不允许重复申明(在相同代码块区域内) 块级作用域 let为 ...

  8. JavaScript学习笔记--ES6学习(五) 数值的扩展

    ES6 对于数值类型 (Number) 进行了一下扩展: 1.对于二进制和八进制提供了新的写法 ES6对于二进制和八进制的数值提供了新的写法,分别用0b (或者0B) 和0o (或者0o) 表示.例如 ...

  9. ES 6 : 数组的扩展

    1.Array.from() Array.from方法用于将两类对象转为真正的数组:类似数组的对象和可遍历(iterable)对象. 下面是一个类似数组的对象,Array.from将它转为真正的数组. ...

随机推荐

  1. Git 系列教程(7)- 撤销操作

    撤销操作 在任何一个阶段,你都有可能想要撤销某些操作 有些撤销操作是不可逆的 --amend 修补提交 有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了. 此时,就可以运行带有 -- ...

  2. mysql 连表不要用varchar和int这两种不相同的类型做比较

    他会默认你123abc等于123 说多了都是泪啊

  3. 技术博客:Azure 认知服务

    Azure 认知服务 1.概述 ​ 微软认知服务(Microsoft Cognitive Services)集合了多种智能API以及知识API,使每个开发人员无需具备机器学习的专业知识就能接触到 AI ...

  4. Spring与Springboot

    1.Spring能做什么 1.1.Spring的能力 1.2.Spring的生态 https://spring.io/projects/spring-boot 覆盖了: web开发 数据访问 安全控制 ...

  5. Let's go!

    第一次开通博客 心情还是很激动的,而且做出了这么好看的页面虽然都是用的别人的组件,自己不是很知道原理但是也很开心,以后会将自己学习的东西写成笔记发在上面

  6. TypeScript 中 Optional Chaining 和 Nullish Coalescing

    Optional Chaining 解决的问题是重复且无意义的判空,之所以说无意义,是对业务来说它不是必需的,但不判空,程序直接就挂了,比如: let x = foo.bar.baz();   这里的 ...

  7. [刷题] 220 Contains Duplicate III

    要求 给出整型数组nums和整数k,是否存在索引i和j 使得nums[i]和nums[j]之差不超过t,且i和j之差不超过k 思路 建立k个元素的有序查找表 每次有新元素加入,寻找查找表中大于 num ...

  8. Java中日志组件详解

    avalon-logkit Java中日志组件详解 lanhy 发布于 2020-9-1 11:35 224浏览 0收藏 作为开发人员,我相信您对日志记录工具并不陌生. Java还具有功能强大且功能强 ...

  9. TCP三次握手和四次挥手及对应端口状态

    一.三次握手 1.第一次握手:Client 将标志位置为1,并向Server发送个seq=j,j为随机产生的数:等待Server回复,此时Client的端口状态为SYN_SENT. 2.第二次握手:S ...

  10. linux中级之ansible配置(roles)

    一.roles介绍 什么情况下用到roles? 假如我们现在有3个被管理主机,第一个要配置成httpd,第二个要配置成php服务器,第三个要配置成MySQL服务器.我们如何来定义playbook? 第 ...