ES6基础

ES6介绍

ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了也叫ECMAScript 2015。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言

let和const

let

let是块级作用域 ,函数内部使用let定义后,对函数外部无影响,只在let命令所在的代码块内有效。

let c = 3;
console.log('函数外let定义c:' + c);//输出c=3
function change(){
let c = 6;
console.log('函数内let定义c:' + c);//输出c=6
} 
change();
console.log('函数调用后let定义c不受函数内部定义影响:' + c);//输出c=3

const

const声明一个只读的常量。一旦声明,常量的值就不能改变。而且必须初始化。

const b = 2;//正确
// const b;//错误,必须初始化 
console.log('函数外const定义b:' + b);//有输出值
// b = 5;
// console.log('函数外修改const定义b:' + b);//无法输出 

let、const、var区别

  • const 和let不存在变量提升
  • let和var定义的是变量,可作更改;const定义的是常量,不可更改。
  • const和let的作用域为{};var的作用域为function(函数中)

ES6变量的解构赋值

数组的解构

let a = 1;
let b = 2;
let c = 3;

ES6 允许写成下面这样。
let [a, b, c] = [1, 2, 3];

对象的解构

let {d,e,f} = {d:3,e:4,f:5}
console.log(d,e,f);     // 3  4  5 

对象的扩展

属性简写

const foo = 'bar';
const baz = {foo};
baz // {foo: "bar"}

// 等同于
const baz = {foo: foo};

只有当定义的变量和对象中的属性值一致时才可写成{foo: foo}的格式,否则将会改变对象的值,直接影响后续代码的执行。

方法简写

const a = {
     method: function() {
          return "Hello!";
     }
};
// 等同于
const a = {
     method() {
           return "Hello!";
    }
};

函数的扩展

ES6允许使用“箭头”=>定义函数

var f = v => v;

// 等同于
var f = function (v) {
      return v;
};

如果箭头函数的代码块部分多于一条语句,就要使用大括号将它们括起来,并且使用return语句返回。

var sum = (num1, num2) => { return num1 + num2; }
注意点:
1. 函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
2. 不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
3. 不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用rest参数代替。
4. 在箭头函数中,this是固定的。

你可能感兴趣的:(ES6基础)