JS中var、let和const之间的区别
程序员文章站
2022-03-07 11:37:49
varletconst...
JS中var、let和const之间的区别
var | let | const | |
---|---|---|---|
变量 | 提升 | 没有提升 | 没有提升 |
作用域 | 只要不是在function里就是全局变量 | 配合{}可以形成块级作用域 | 也会形成块级作用域 |
是否挂在到GO上 | 是 | 否 | 否 |
是否能重复声明 | 能 | 否 | 否 |
赋值 | 可以不赋值 | 可以不赋值 | 必须赋值 |
注意:关于let声明的变量是否提升,也有的说let声明的变量也提升了,只是没有初始化。
声明变量使用let,声明常量使用const,一般不使用var
关于变量
console.log(a); //cannot access 'a' before initialization
console.log(b); //cannot access 'b' before initialization
let a = 110;
const b = ;
关于作用域
if(true){
var a = 110; // 全局变量
// b和c只能在当前的{}中被访问到 出了块就访问不了
let b = 666; // let + {} 形成块级作用域
const c = 111;
}
console.log(a);//输出110
console.log(b); // b is not defined
console.log(c); // c is not defined
关于是否挂载在GO中
let a = 110;
console.log(window.a); // undefined 访问一个对象上没有属性,得到的就是undifined
const b = 1;
console.log(window.b); // undefined
var c = 2;
console.log(window.c);//输出2
关于是否能重复声明
let a = 1;
let a = 2;
console.log(a); // Identifier 'a' has already been declared
const a = 1;
const a = 2;
console.log(a);//Identifier 'a' has already been declared
var a = 1;
var a = 2;
console.log.(a);//输出2
关于赋值
var a;
let b;
const c;
//Uncaught SyntaxError: Missing initializer in const declaration
//语法错误:只要是语法错误,代码就没有执行的机会
本文地址:https://blog.csdn.net/lyh1291341482/article/details/107388541
下一篇: JS构造函数和原型
推荐阅读
-
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
-
解析Android中webview和js之间的交互
-
js判断变量类型使用什么方法(let和var和const区别)
-
Node.js 中exports 和 module.exports 的区别
-
js判断变量类型使用什么方法(let和var和const区别)
-
js获取元素坐标位置(js中var和let的区别)
-
js中innerText/textContent和innerHTML与target和currentTarget的区别
-
JS中的位置和宽度:clientWidth、offsetWidth、scrollWidth等区别介绍
-
js中apply和Math.max()函数的问题及区别介绍
-
浅谈JS中 var let const 变量声明