ES6新增特性(一)


let

区别1:
let定义的变量只能在代码块{}里面使用,形成一个{}块级作用域
var作用于函数作用域

区别2:
let不允许重复声明,它是一个封闭空间,解决了i问题JavascriptEnlighterJS Syntax Highlighter

const

const用来定义常量,一旦定义了,后面就不能修改了

箭头函数=>

function()中this是指向调用这个函数的对象

  1. 箭头函数中,this指向了window
  2. arguments,不能使用
    由于this在箭头函数中已经按照词法作用域绑定了,所以,用call()或者apply()调用箭头函数时,无法对this进行绑定,即传入的第一个参数被忽略

解构赋值

  1. 左右两边结构一样
  2. 右边必须是合法结构(错误例子:{12,5,8})
  3. 声明和赋值写在一句话中(错误例子: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/
来源:开发之家
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>