ES6 入门(一)

ES6 入门 (一)

块级作用域 —— let命令、const命令

-使用let命令声明的变量不会变量提升

(function(){
    if(true){
        let a = 5;
    }
    console.log(a); //报错 
})

-使用const命令声明的变量必须在声明时赋值

const a; //报错

-使用const命令声明的变量,若赋值为一个对象时,它指向的地址不可改变,对象的属性就不可控了,

const a = {};
a.name = 'Tom';//正确
a = {name: 'Tom'};//报错

若需要使得对象冻结,则需要使用到Object.freeze方法

var obj = Object.freeze({});
obj.age = 18;//常规模式下无效,严格模式下报错

要将对象本身及对象的的属性都冻结,可以使用下面这个方法

var constantize = (obj) => {
  Object.freeze(obj);
  Object.keys(obj).forEach( (key, i) => {
    if ( typeof obj[key] === 'object' ) {
      constantize( obj[key] );
    }
  });
};

-ES6 声明变量的六种方法:var命令、function命令、let命令、const命令、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');
};
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值