ES6新增特性(一)
let
区别1:
let定义的变量只能在代码块{}里面使用,形成一个{}块级作用域
var作用于函数作用域
区别2:
let不允许重复声明,它是一个封闭空间,解决了i问题JavascriptEnlighterJS Syntax Highlighter
const
const用来定义常量,一旦定义了,后面就不能修改了
箭头函数=>
function()中this是指向调用这个函数的对象
- 箭头函数中,this指向了window
- arguments,不能使用
由于this在箭头函数中已经按照词法作用域绑定了,所以,用call()或者apply()调用箭头函数时,无法对this进行绑定,即传入的第一个参数被忽略
解构赋值
- 左右两边结构一样
- 右边必须是合法结构(错误例子:{12,5,8})
- 声明和赋值写在一句话中(错误例子:let [a,b]; [a,b]=[12,5];)
JavascriptEnlighterJS Syntax Highlighter
数组新增方法:
Array.of:将一组数值转换成数组
返回值是一个数组
let arr = Array.of(1,2,3,4)
console.log(arr) //[1,4]
includes:查找当前值是否属于当前数组
成功true 失败false
var arr = [12,13,14,111]
console.log(arr.includes(11)) //false
Array.from:将一个伪数组转换成纯数组
function fn(){
console.log(Array.from(arguments))
}
fn(1,4,5) //[1,5]
console.log(Array.from(arguments) instanceof Array) //true
Array.fill( )
填充参数1:需要填充的数据
参数2:(包括)填充开始的下标
参数3:(不包括)结束的下标
Array.find( ) 根据条件找到相对应的值(最近的一个值)
var n = arr.findIndex(function(item,array)){
return item>20
}
console.log(n) //2
字符串模板 ``
(反单引号)
作用:以反引号( ` )表示普通的字符串,也可以表示多行字符串,同时还可以插入变量(代替传统的加号拼接)。
使用${}表示字符串中的变量。
实例:
let name = "小芳"; let age = 13; //传统写法 let str1 = '名字' + name + '年龄' + age; console.log(str1);//名字小芳年龄13 //使用模板字符串写法 let str2 = `名字${name}年龄${age}`; console.log(str2);//名字小芳年龄13
rest参数...
(3个点)
ES6 引入 rest 参数(形式为…变量名),用于获取函数的多余参数,这样就不需要使用arguments对象了。rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中。
下面用一个实例讲解rest参数和arguments对象的区别:
function fn() { // arguments是函数内部的一个全局变量,用来存放函数的实参,是一个类数组 // arguments.length表达函数参数的个数 console.log(arguments.length); for (var i = 0; i < arguments.length; i++) { console.log(arguments[i]); } } fn(1, 3, 5) // 箭头函数内部不能使用arguments // 为了弥补这个问题,rest参数应孕而生 // ...args就是rest参数 // 产生一个变量,这个变量是一个数组,数组里面包含了这个函数调用时传递的所有实参 function q(...args) { // 验证args是不是数组 console.log(args instanceof Array) //true 第一种方式 console.log(Object.prototype.toString.call(args)) //"[object Array]" 老方法 console.log(Array.isArray()) //es5中的新方法 true console.log(args) } q(1, 3, 5);
版权声明:
作者:广州前端开发
链接:https://www.develophm.com/index.php/es6-2/82/
来源:开发之家
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论