2019-03-03

2019-03-03  本文已影响0人  宁宁妮

es6 第二章 let和const命令

let

基本用法

  var tmp =123;
    if(true){
        tmp="abc";
        let tmp ;
}
//ReferenceError: tmp is not defined

块级作用域

 {{
    let s="hello";
    {let s=2}
 }}   

const

基本用法

const pi=3.14
pi=3;
pi//TypeError: Assignment to constant variable.
const p;
//SyntaxError: Missing initializer in const declaration.
const foo={};
 foo.name="Lucy";
 foo.name;//"Lucy"
 foo={}//报错  
var constantize = (obj) => {
 Object.freeze(obj);
 Object.keys(obj).forEach( (key, i) => {
   if ( typeof obj[key] === 'object' ) {
     constantize( obj[key] );
   }
 });
};

es6变量声明的方法

顶层对象的属性

Global对象

 // 方法一
      (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');
      };

         // CommonJS 的写法
           require('system.global/shim')();
           
           // ES6 模块的写法
           import shim from 'system.global/shim'; shim();
      // CommonJS 的写法
       var global = require('system.global')();
       
       // ES6 模块的写法
       import getGlobal from 'system.global';
       const global = getGlobal();

参考文献

ECMAScript 6 入门--阮一峰

上一篇下一篇

猜你喜欢

热点阅读