ES6新增const常量、let变量】的更多相关文章

JavaScript 严格模式(use strict) 严格模式下你不能使用未声明的变量. const c1 = 1; const c2 = {}; const c3 = []; 不能对c1的值进行再次的赋值: 也不能在对c2,c3进行赋值,但是可以改变c2的内容,因为c2是个对象,看例子 c2.p1 = 1; console.log(c2.p1)打印出来结果为1 同样,也可以往c3中添加元素,因为c3是个数组. const声明的变量与let声明的变量类似,它们的不同之处在于,const声明的变…
C++ 语言可以用const 来定义常量,也可以用#define 来定义常量.但是前者比后者有更多的优点:(1) const 常量有数据类型,而宏常量没有数据类型.编译器可以对前者进行类型安全检查.而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误(边际效应).(2) 有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试.规则5-2-1:在C++ 程序中只使用const 常量而不使用宏常量,即const 常量完全取代宏常量. 2.实现机制 宏…
/** * C中的常量与变量 * 常量的值在程序中是不可变化的,其在定义时必须给一个初始值 * 常量的定义方式: * 1.#define 定义宏常量 * 2.const 定义const常量 * 对于#define类型的常量,c语言的习惯是常量名称为大写,但对普通 * const常量以及变量,一般为小写结合大写的方式 * * 变量的值是可变的 */ #include <stdio.h> // 定义一个宏常量,值为500 // 常量的值不可以更改 #define NUM 500 // 定义字符串常…
var 如果使用关键字 var 声明一个变量,那么这个变量就属于当前的函数作用域,如果声明是发生在任何函数外的顶层声明,那么这个变量就属于全局作用域. let 1.let 声明的变量具有块作用域的特征. 2.在同一个块级作用域,不能重复声明变量. function foo(){ let a = 1; let a = 2;//Uncaught SyntaxError: Identifier 'a' has already been declared } 3.let 声明的变量不存在变量提升,换一种…
1.let ES6中新增的用于声明变量的关键字. let 声明的变量只在所处于的块级有效. 注意:使用 let 关键字声明的变量才具有块级作用域,var 关键字是不具备这个特点的. 1. 防止循环变量变成全局变量. 2. 不存在变量提升 3. 暂时性死区 if(true){ let a=10; } console.log(a); // a is not defined //防止循环变量变成全局变量 for(var i=0;i<2;i++){ } console.log(i); // i=2(只有…
ES6简介 ES6是ECMAScript 6.0的简称,是javascript语言的下一代标准,已经在2015年6月正式发布上线.目的就是为了统一javascript的语法标准,可以用来开发大型应用程序,称为企业级开发语言. ES6与JavaScript的关系: ES6是JavaScript的规范标准,JavaScript是ES6的一种实现. 变量/赋值 块级作用域{} ES5中作用域有:全局作用域.函数作用域,没有块作用域的概念.ES6新增了块级作用域,块作用域由{}包括,if语句里面的{}也…
ES6 中除了使用 var 定义变量,还有let.const,定义变量. function getValue(condition){ console.log(typeof value2); // undefined,与 if 语句中的 value2 不在同一个作用域中 //console.log(typeof v); //临时死区,需要先定义后使用,ReferenceError: v is not defined let v = "e"; let value1; // let valu…
hi,我又回来了,今天学习一下const命令. 声明一个常量 const声明一个只读常量,一旦声明,常量的值便不可改变. 例子如下: const food = 12; food = 23; // Uncaught TypeError: Assignment to constant variable. 还可以声明一个变量 const可以声明一个变量,声明以后,必须初始化,否则变错. 例子如下: const food; // Uncaught SyntaxError: Missing initial…
ES5声明变量(2):var .function ES6声明变量(6):var.function.let.const.import和class 1.let命令和const命令 (1)let和const都不存在变量提升,都是快作用域[ES6](立马执行),const定义的常量不能被修改 (2)暂时性死区:在代码块内,使用let/const命令声明变量之前,该变量都是不可用的. (3)let,const不允许在相同作用域中重复声明 (4)块作用域中,允许声明函数(只在使用大括号的情况下),该函数行为…
let 与 var var var声明的变量拥有全局作用域或者局部作用域 在全局中声明变量即为全局变量 在函数中声明变量即为局部变量 而var在使用过程中也逐渐暴露出许多问题 var的几大问题 变量提升 使用var来声明变量会出现变量提升的问题,即在声明变量之前就调用变量 console.log(info);//undefined var info = 10; 出现上面情况其实是非常不好的,因为在声明之前使用的话应该去报出一个错误而不是用一个undefined给这个变量赋值. 这个问题在函数中尤…