js学习纪实(I) ES6标准解读

js学习纪实(I) ES6标准解读

    ECMAScript 6.0(以下简称 ES6)是 JavaScript的新一代标准,于2015年6月发布,此文对此标准进行解读,可以理解为是有js基础的语法学习。

1.变量声明

    在前面版本中使用var声明变量,ES6添加了声明变量关键字 let ,let声明的变量只在代码块中生效。

    注意:for循环中存在子作用域,会发生覆盖:

for (let i = 0; i < 3; i++) {
    let i = 'abc'
    console.log(i)
}// 输出三个abc

    var存在变量提升现象,即变量在声明前调用不会报错,而是会输出为undefined。

    当在var声明变量区间中的代码块使用letconst声明其他变量时,该代码块会变成暂时性死区,不允许有变量提升现象存在。

var a='abc'
{
    console.log(a)        //会报错
    let a='abcd'
}

    相同的作用域内,不允许let重复声明同名变量

var a='abc'
let a='abcd'        //会报错
----------------------------------
let a='abc'
let a='abcd'        //会报错

const声明为常量,不可改动,不可以只声明不赋值,使用方式同let


ES6共有六中变量声明方法 let var const function import class

顶层对象获取

// 方法一(typeof window !== 'undefined'
   ? window   : (typeof process === 'object' &&
      typeof require === 'function' &&
      typeof global === 'object')
     ? global     : this)
// 方法二var getGlobal = function () {
  if (typeof self !== 'undefined') { return self }
  if (typeof window !== 'undefined') { return window }
  if (typeof global !== 'undefined') { return global }
  throw new Error('unable to locate global object')
  };

 

2.解构赋值

    ES6提供的全新赋值方式

let a = 1
let b = 2
let c = 3    //旧

let [a, b, c] = [1, 2, 3]        //ES6  类似于“模式匹配”的解构赋值 左右须格式相同 等号右边须为数组结构

let [x, y = 'b'] = ['a']         // x='a', y='b'    可以有默认值

let  [a=1, b=1] = [null,undefined]              // a=null,b=undefined

    还可以对数组、对象等采取这种赋值方式,在这不赘述。




2018-12-21鱼鱼

{{blog.title}}

创建于 {{blog.createTimeStr}}   created  by  {{blog.author}} {{tag}}
最后修改于 {{blog.timelineStr}}
修改文档