ES6 let和const命令(4)
const声明的常量只在当前代码块有效。如果想设置跨模块的常量,可以采用下面的写法。
//constants.js模块
export const A = 1;
export const B = 3;
export const C = 4;
//test1.js模块
import * as constants from './constants';
console.log(constants.A);//1
console.log(constants.b);//3
//test2.js模块
import {A,B} from './constants';
console.log(A);//1
console.log(B);//3
全局对象是最顶层的对象,在浏览器环境指的是windows对象,在Node.js中指的是global对象。
在ES5中,全局对象的属性与全局变量是等价的。
window.a = 1;
a//1
a = 2;
window.a//2
上面代码中,全局对象的属性赋值与全局变量的赋值是同一回事。(对于Node.js来说,这一条只对REPL环境适用,模块环境之中,全局变量必须显示声明成global对象的属性。)
这种规定杯视为javaScript语言的一大问题,因为很容易不知不觉就创建了全局变量。ES为了改变这一点,一方面规定,var命令和function命令声明的全局变量依旧是全局对象的属性;另一方面规定,let命令、const命令和class命令声明的全局变量不属于全局对象的属性。
var a = 1;
//如果在Node.js的REPPL环境,可以写成global.a
//或者采用通用方式法,写成this.a
window.a //1
let b = 1;
window.b//undefind
上面的代码中,全局变量a又var命令声明,所以是全局对象你的属性;全局变量b由let命令声明,所以不是全局对象的属性,返回undefined
ES6 let和const命令(4)的更多相关文章
- ES6 let和const命令(3)
const 用来声明常量.一旦声明,就不能改变. const在声明必须初始化,只声明不赋值会出错 const的作用域与let一样,只在声明的块级作用域有效. const命令声明的常量也不提升,同样存在 ...
- es6 let和const命令(1)
基本用法 ES新增了let命令,用于声明变量.其用法类似于var,但是所声明的变量只在let命令所在的代码块中有效. for(let i = 0;i<5;i++) {} console.log( ...
- ES6之新增const命令使用方法
hi,我又回来了,今天学习一下const命令. 声明一个常量 const声明一个只读常量,一旦声明,常量的值便不可改变. 例子如下: const food = 12; food = 23; // Un ...
- ES6中的const命令【转】
1.const声明一个只读常量,一旦声明,常量的值就不能改变 1 const PI=3.1415; 2 console.log(PI);//3.1415 3 4 PI=3;//Uncaught Typ ...
- ES6中的const命令
1.const声明一个只读常量,一旦声明,常量的值就不能改变 1 const PI=3.1415; 2 console.log(PI);//3.1415 3 4 PI=3;//Uncaught T ...
- ES6 let和const命令
一.let定义变量 { let a = 1;} console.log(a);只在let所在的代码块有效,console的结果是a is not defined,报错. 不存在var的变量提升,即使用 ...
- ES6 let和const命令(2)
为什么要使用块级作用域 在ES5中只有全局作用域和函数作用域,没有块级作用域,因此带来了这些麻烦 内层变量可能会覆盖外层变量 var tmp = new Date(); console.log(tmp ...
- es6学习笔记(1) let和const命令详解
let和const命令: Es6新增了let命令,声明变量,但与var不一样的,只在let命令所在的代码块内有效(如for循环之外let声明的变量就不再有效).并且let不像var那样会发生" ...
- ES6之let(理解闭包)和const命令
ES6之let(理解闭包)和const命令 最近做项目的过程中,使用到了ES6,因为之前很少接触,所以使用起来还不够熟悉.因此购买了阮一峰老师的ES6标准入门,在此感谢阮一峰老师的著作. 我们知道,E ...
随机推荐
- Python之文件的基本操作
在python中,对文件的基本操作一共有如下四种: 1.打开文件 file_obj = open("文件路径","模式") 常用的打开文件模式有: r:以只读方 ...
- Unity塔防游戏开发
Unity3D塔防开发流程 配置环境及场景搭建编程语言:C#,略懂些许设计模式,如果不了解设计模式,BUG More开发工具:Unity3D编辑器.Visual Studio编译器开发建议:了解Uni ...
- 在windows下vs使用pthread
首先从http://sourceware.org/pthreads-win32/下载pthread 的windows安装包,我下的是pthread-w32-2-9-1-release.zip,其他版本 ...
- 简介CentOS与 Ubuntu的不同
1.关于登录用户 centos可以使用root登录 ubuntu不能使用root登录 centos普通用户默认不能通过sudo取得root权限执行命令, ubuntu可以,centos需要sudo时 ...
- 数据库索引------Btree索引的使用限制
1.如果不是按照索引最左列开始查找,则无法使用索引. 比如说id+name 那么是name+id 的话 ,这个索引则无法使用. 2.使用索引时不能跳过索引中的列. 如果是id+name+ag ...
- js 数组去重复的方法
数组去重复是js中常用的方法,归纳了四种如下: 1. for + indexOf 去重复 var arr = [3,5,5,4,1,1,2,3,7,2,5]; var target = []; fo ...
- Js 调用 WebService 实例
Html页面代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/ ...
- gulp杂记
一.什么是gulp gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她,我们不仅可以很愉 ...
- java进阶书籍
1.<深入理解Java虚拟机:JVM高级特性与最佳实践> 2.<HotSpot实战> 3.<Java并发编程实战> Brian Goetz 4. <Java多 ...
- mac mono Fiddler.exe启动失败
mono version 5.4 fiddler version 4.6 启动fiddler:mono Fiddler.exe 启动报错 WARNING: The Carbon driver has ...