ES6知识

ES6教程

简介

ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。

let 与const

ES6新增加俩个重要的关键字:let和const

let命令

代码块内有效

{
    
    
  let a = 0;
  a   // 0
}
a   // 报错 ReferenceError: a is not defined

不能重复声明

let a = 1;
let a = 2;
var b = 3;
var b = 4;
a  // Identifier 'a' has already been declared
b  // 4

for 循环计数器很适合用 let

for (var i = 0; i < 10; i++) {
    
    
  setTimeout(function(){
    
    
    console.log(i);
  })
}
// 输出十个 10
for (let j = 0; j < 10; j++) {
    
    
  setTimeout(function(){
    
    
    console.log(j);
  })
}
// 输出 0123456789

不存在变量的提升


console.log(a);  //ReferenceError: a is not defined
let a = "apple";
 
console.log(b);  //undefined
var b = "banana";

const命令

const 声明一个只读变量,声明之后不允许改变。意味着,一旦声明必须初始化,否则会报错。

const PI = "3.1415926";
PI  // 3.1415926

const MY_AGE;  // SyntaxError: Missing initializer in const declaration

就近原则

var PI = "a";
if(true){
    
    
  console.log(PI);  // Cannot access 'PI' before initialization
  const PI = "3.1415926";
}
var PI = "a";
if(true){
    
    
  
  const PI = "3.1415926";
  console.log(PI);  // 3.1415926
}

解构赋值

解构赋值是对赋值运算符的扩展。
他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。
在代码书写上简洁且易读,语义更加清晰明了;也方便了复杂对象中数据字段获取。

数组的解构

基本

let [a,b,c] = [1,2,3]

可嵌套

let [a, [[b], c]] = [1, [[2], 3]];

可忽略

let [a, , b] = [1, 2, 3];

不完全解构

let [a = 1, b] = [];

…运算符

let [a, ...b] = [1, 2, 3];
//a = 1
//b = [2, 3]

解构默认值

let [a = 2] = [undefined]; // a = 2

字符串

let [a, b, c, d, e] = 'hello';
// a = 'h'
// b = 'e'
// c = 'l'
// d = 'l'
// e = 'o'

对象模型的解构

基本

let {
    
     foo, bar } = {
    
     foo: 'aaa', bar: 'bbb' };
// foo = 'aaa'
// bar = 'bbb'

let {
    
     baz : foo } = {
    
     baz : 'ddd' };
// foo = 'ddd'

可嵌套可忽略

let obj = {
    
    p: ['hello', {
    
    y: 'world'}] };
let {
    
    p: [x, {
    
     y }] } = obj;
// x = 'hello'
// y = 'world'
let obj = {
    
    p: ['hello', {
    
    y: 'world'}] };
let {
    
    p: [x, {
    
      }] } = obj;
// x = 'hello'

不完全解构

let obj = {
    
    p: [{
    
    y: 'world'}] };
let {
    
    p: [{
    
     y }, x ] } = obj;
// x = undefined
// y = 'world'

…运算符

let {
    
    a, b, ...rest} = {
    
    a: 10, b: 20, c: 30, d: 40};
// a = 10
// b = 20
// rest = {c: 30, d: 40}

解构默认值

let {
    
    a = 10, b = 5} = {
    
    a: 3};
// a = 3; b = 5;
let {
    
    a: aa = 10, b: bb = 5} = {
    
    a: 3};
// aa = 3; bb = 5;

猜你喜欢

转载自blog.csdn.net/weixin_61485030/article/details/131407021