ES6学习笔记一(let、const、块级作用域)

原创 夏天不做梦 随笔 ES6 295阅读 2017-06-09 16:13:47 举报

let

javascript 代码

let有以下几个特性

1.let声明的变量,只在let命令所在的代码块内有效。
2.不存在变量提升,必须先声明才可以使用否则报错
3.只要这个代码块内存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。
4.在相同作用域内 不能重复声明变量否则报错

es6块级作用域

javascript 代码

报错的原因是因为在浏览器环境中函数声明类似var 会产生变量提升 ,而在其他环境中函数声明类似let
1.允许在块级作用域内声明函数。
2.函数声明类似于var,即会提升到全局作用域或函数作用域的头部。同时,函数声明还会提升到所在的块级作用域的头部

const

声明常量 一旦声明,常量的值就不能改变,但是如果类型是对象,可以为对象添加属性,
本质是变量指向内存地址的指针不能改动。
声明的常量也是不提升,不可重复声明。
并且只在声明所在的块级作用域内有效。
如果真的想将对象冻结,应该使用Object.freeze方法

ES6 一共有6种声明变量的方法

var function let const import class

global顶层对象

// CommonJS的写法
require('system.global/shim')();

// ES6模块的写法
import shim from 'system.global/shim'; shim();

上面代码可以保证各种环境里面,global对象都是存在的。

// CommonJS的写法
var global = require('system.global')();

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

上面代码将顶层对象放入变量global。

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复