ES7扩展
前一段时间小编一直在更新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扩展的更多相关文章
- ES6学习(二)基础命令
一.Let 和 const 作用域的概念:在es5之前是有两个作用域,一个是全局作用域,另外一个是函数作用域,在es6中就多了这样一个块作用域.在这里let 和 const 就是传说中的块作用域,它 ...
- js 数组对象深拷贝
js 数组对象深拷贝 结论:对象的拷贝不能采用直接赋值的方式. 背景 踩过的坑如下: formData本来是父组件传过来的,但是我不想直接用,于是我直接赋值给一个formDataCopy的对象. 但是 ...
- ES6之字符串扩展方法(常用)
es6这个String对象倒是扩展了不少方法,但是很多都是跟字符编码相关,个人选了几个感觉比较常用的方法: includes 搜索字符的神器 还记得我们之前如何判断某个字符串对象是否包含特地字符的吗? ...
- ES6新特性:Function函数扩展, 扩展到看不懂
本文所有Demo的运行环境为nodeJS, 参考:让nodeJS支持ES6的词法----babel的安装和使用 : 函数的默认值: 如果有参数 ,那就用参数, 如果没有参数, 那就用默认的参数: aj ...
- echart 扩展地图不显示问题
今天写项目需要一个安徽地图,但echart自带的安徽地图还是老版的,仍有巢湖市,但客户要求不能有,只好重新找, 后发现ECharts 地图数据在线生成工具 :http://ecomfe.github. ...
- ES6 入门系列 - 函数的扩展
1函数参数的默认值 基本用法 在ES6之前,不能直接为函数的参数指定默认值,只能采用变通的方法. function log(x, y) { y = y || 'World'; console.log( ...
- 关于ES6扩展属性
ES6 let和const let命令 只在代码块作用域内有效 不存在变量提升(不能在申明之前赋值) 暂时性死区(在区域内不受外部变量影响) 不允许重复申明(在相同代码块区域内) 块级作用域 let为 ...
- JavaScript学习笔记--ES6学习(五) 数值的扩展
ES6 对于数值类型 (Number) 进行了一下扩展: 1.对于二进制和八进制提供了新的写法 ES6对于二进制和八进制的数值提供了新的写法,分别用0b (或者0B) 和0o (或者0o) 表示.例如 ...
- ES 6 : 数组的扩展
1.Array.from() Array.from方法用于将两类对象转为真正的数组:类似数组的对象和可遍历(iterable)对象. 下面是一个类似数组的对象,Array.from将它转为真正的数组. ...
随机推荐
- 脱壳入门----脱ASPack壳保护的DLL
前言 结合脱dll壳的基本思路,对看雪加密解密里的一个ASPack壳保护的dll进行脱壳分析. 脱壳详细过程 寻找程序的OEP 先将目标DLL拖入OD,来到壳的入口处. 然后利用堆栈平衡原理在push ...
- 一文读懂 SuperEdge 云边隧道
作者 李腾飞,腾讯容器技术研发工程师,腾讯云TKE后台研发,SuperEdge核心开发成员. 杜杨浩,腾讯云高级工程师,热衷于开源.容器和Kubernetes.目前主要从事镜像仓库,Kubernete ...
- Linux单用户模式(修改密码、运行级别)方法详解
很多新手当面对"忘记 root 账户密码导致无法登陆系统"这个问题时,直接选择重新系统.其实大可不必,我只需要进入 emergency mode(单用户模式)更新 root 账户的 ...
- 1.7 Systemd初始化进程
1.7 Systemd初始化进程 Linux操作系统的开机过程是这样的,即从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程.初始化进程作为Linu ...
- 凯撒密码Caesar
//@132屋里上课群 #include<stdio.h>#include<stdlib.h>//颜色using namespace std;int jiami();int j ...
- Java 关键字详解
Java 关键字是 Java 语言中被赋予特殊意义的一些单词(每个关键字都代表着不同场景下的不同含义),不可以把它当作标识符来使用(不能用作变量名.方法名.类名.包名和参数名等).Java 中的关键字 ...
- 设置添加SSH-(转自破男孩)
很多朋友在用github管理项目的时候,都是直接使用https url克隆到本地,当然也有有些人使用 SSH url 克隆到本地.然而,为什么绝大多数人会使用https url克隆呢? 这是因为,使用 ...
- html原生js实现99乘法表
原生的js实现99乘法表实现选择下拉框颜色,改变背景颜色为选中的颜色 <!DOCTYPE html> <html> <head> <meta charset= ...
- Java核心技术卷阅读随笔--第4章【对象与类】
对 象 与 类 4.1 面向对象程序设计概述 面向对象程序设计(简称 OOP) 是当今主流的程序设计范型, 它已经取代了 20 世纪 70 年代的" 结构化" 过程化程序设计开发技 ...
- Windows登录服务器CLI运行脚本出现 syntax error: unexpected end of file 错误的解决
0.前言 通常我们在编辑 Linux 服务器上的文件时,直接在 Linux 环境比较麻烦(当然熟练使用 VIM 的程序员除外哈哈),有时我们会使用 Windows 将文件编辑好再上传到服务器端,我用的 ...