1.var
var 定义变量,没有块的概念,可以跨域访问,不能跨函数访问,不初始等于undefined,不会报错
2.let
let定义变量,只能在块作用域里访问,也不能跨函数访问,对函数外部无影响,不初始等于undefined
3.const
const定义常量,只能在块作用域里访问,也不能跨函数,使用时必须初始化,要附上值,而且不能修改
但const定义一个对象,对象中的值可以改变
const test = {
a:1,
b:2,
};
test.a = 5;
console.log(test);
运行结果:
运行结果
- const不能修改,会报错,如下图
-
const定义的常量必须先赋值,否则回报错,如下图
const得先赋值
-
var没有块的概念,可以跨域访问
-
let 和 const 有块的概念,不可以跨域访问,跨域访问会报错
image
输出结果:(在块外访问就会报错)
image
image
image
-
var let const 都不能跨函数访问(作用域不同不能访问),作用域相同才可以访问
image
-
let完全可以取代var,因为两者语义相同,而且let没有副作用。
-
let和const的本质区别,其实是编译器内部的处理不同。一个声明变量,一个声明常量.
-
const声明常量还有两个好处,一是阅读代码的人立刻会意识到不应该修改这个值,二是防止了无意间修改变量值所导致的错误。
网友评论