①var表示声明了一个变量,并且可以同时初始化该变量。
②使用var语句声明的变量的作用域是当前执行位置的上下文:一个函数的内部(声明在函数内)或者全局(声明在函数外)。
③给一个非声明变量赋值会隐式创建一个全局变量(造成代码污染)(全局object的一个属性)。声明变量(Declared Variable)和非声明变量(Undeclared Variable)的区别是:
(1)声明变量的作用域限制在其声明位置的上下文中,而非声明变量总是全局的。
(2)声明变量在任何代码执行前创建,而非声明变量只有在执行赋值操作的时候才会被创建。
(3)声明变量是它所在上下文环境的不可配置属性(non-configurable property),非声明变量是可配置的(例如非声明变量可以被删除)。
强烈建议必须使用声明变量!!!(无论是否在函数内)
④变量提升:由于变量声明(以及其他声明)总是在任意代码执行之前处理的,所以在代码中的任意位置声明变量总是等效于在代码开头声明。这意味着变量可以在声明之前使用。
2、let
①let声明了一个块级域的局部变量,并且可以给它一个初始化值。
②let
允许把变量的作用域限制在块级域中。与var不同处是:var 申明变量要么是全局的,要么是函数级的,而无法是块级的。
③let声明的变量作用域包含定义它的块以及任何包含的子块中。这点与var相似。
④为什么会是let这个名字?https://stackoverflow.com/questions/37916940/js-why-let-have-this-name
⑤在程序或者函数的顶层,let 与 var 表现相似。
⑥在同一个函数或同一个作用域中用let重复定义一个变量将引起TypeError。
⑦let的作用域是块,而var的作用域是函数。
⑧let块
提供了一种在块的范围内获取变量的值,而不会影响块外面名字相同的变量的值的方法。
3、const
①const 声明创建一个只读的常量。这不意味着常量指向的值不可变,而是变量标识符的值只能赋值一次。(注意区分常量的值和常量指向的值的不同)
注:这点与Java C++中类似。即:指向常量的指针,表示这个指针不能改变所指向变量的值,仅表示“只读“。但是被指向的变量的值可以通过其他手段改变。
②可以在全局作用域或者函数内声明常量,常量需要被初始化。
③常量拥有块作用域,和使用let定义的变量十分相似。常量的值不能通过再赋值改变,也不能再次声明。
④一个常量不能和它所在相同作用域内的其他变量或函数拥有相同的名称。
⑤常量可以是一个具体的值,也可以是一个对象。注意:常量是对象时,对象内部的属性可变而不受保护。
例如:
const myObject = {"key":"value"};
myObject = {"newKey":"newValue"}; // 这句报错
myObject.key = "newValue"; // 这句则会成功
相关推荐
JavaScript es6中var、let以及const三者区别案例详解 首先,一个常见的问题是,ECMAScript 和 JavaScript 到底是什么关系? ECMAScript是一个国际通过的标准化脚本语言。JavaScript由ECMAScript和DOM、BOM三者...
随着ES6规范的到来,Js中定义变量的方法已经由单一的 var 方式发展到了 var、let、const 三种之多。var 众所周知,可那俩新来的货到底有啥新特性呢?到底该啥时候用呢?下面就是小编总结出的关于javascript中var与...
var声明变量的作用域限制在其声明位置的上下文中 var x = 0; // x是全局变量,并且赋值为0。 console.log(typeof z); // undefined,因为z还不存在。 function a() { // 当a被调用时, var y = 2; // y被声明成...
javascript 的var、let、const的区别
在JavaScript中有三种声明变量的方式:var、let、const。但是有朋友不清楚这三种声明变量的区别,下面脚本之家小编给大家详细介绍下js中const、var和let的区别,感兴趣的朋友一起看看吧
微信小程序可以使用Javascript的最新ES6标准来开发所以微信小程序中var、let、const用法与区别可以视为Javascript ES6标准中var、let、const用法与区别 let命令 基本用法 ES6 新增了let命令,用来声明变量。它的用法...
What we know is that…(英语作文万能开头) :在JavaScript中有三种声明变量的方式:var、let、const。 目录1.var2. let3. const 1.var (1)var定义的变量在之后可以修改,如果不初始化会输出undefined,不会报错...
var, let , const 的区别详解.md
主要给大家介绍了在JavaScript中const、let与var对比的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编来一起看看吧。
1.声明后未赋值,表现...2.使用未声明的变量,表现不同 //一个例子 (function() { console.log(varTest); //输出undefined(注意要注释掉下面一行才能运行) console.log(letTest); //直接报错:ReferenceError: letT
下面通过代码给大家介绍JavaScript中var、let、const区别,具体代码如下所述: //1.var定义的变量可以修改,如果不初始化会输出undefined,不会报错。 var a; console.log(a); //undefined //2.let是块级作用域,...
C语言在头文件中定义const变量详解 在头文件中定义const不会有多变量的警告或错误,如果该头文件被大量包含会造成rom空间的浪费。 通过查看*.i文件的展开呢,可以发现每个.i文件都会有相应的变量展开。 查看*.map...
JavaScript let 和 const ECMAScript 2015(ECMAScript 6) ES2015(ES6) 新增加了两个重要的 JavaScript 关键字: let 和 const。 let 声明的变量只在 let 命令所在的代码块内有效。 const 声明一个只读的常量,一旦...
const和let一样,也是ES6版本中引入的新关键字,下面我们就通过例子来简单掌握JavaScript中const关键词声明常量与变量的用法
在JavaScript的语法中,我们可以使用var、let或const来声明变量,其中let是现代的变量声明方式,而var则相对老旧且不再被推荐使用。const声明的变量类似于let,但其值无法被修改。JavaScript拥有八种基本数据类型,...
用 const 或 let 声明自己的 JavaScript 变量。两者之间的主要区别是 const 变量在声明时需要初始化,并且一旦初始化就无法再重新赋值。 // const 需要初始化 const pi = 3.14; // const 不能被重新赋值 pi = ...