声明变量var与let和const的区别
前言
JavaScript的变量是松散的,即变量是可以保存任何类型的数据。每一个变量不过是保存任意值的**‘命名占位符’。可以声明变量的有:var、let、const;其中var时JavaScript最早使用的声明可以在任意版本的JavaScript中使用,而let以及const只能在ES6或更晚的版本中使用。
一、var关键字
使用var定义变量,var为关键字,后面跟变量名;
例如: var name;
以上代码为定义了一个名字为name的变量,但变量声明者并未保存任何类型的值,所以变量会自动保存一个特殊值undefined(未明确的、未定义的)。
我们使用时可以给他设一个值:
下面展示一些 代码
。
//我们声明一个变量name,并输出它的值;
<srcipt>
//第一种:
var name = "Tom";
console.log(name);
//第二种:
name = "Jerry";
console.log(name);
</srcipt>
按下F12,Console控制台输出如下:
我们可以看到第一种和第二都可以成功的输出,但是并不推荐使用第二种写法,不推荐的原因:
1.var的声明作用域
(1)var的操作符定义的变量会成为包含他的函数的局部变量。那么这个变量将在函数调用执行结束后退出销毁,在之后调用函数内部的变量不会显示!
<script>
function scope() {
var aaa = "Tom" //局部变量
}
piece();
console.log(aaa) //出错!
</script>
(2)不适用var关键字,相当于在函数内部声明了一个全局变量,变量不会受函数的影响,只要调用一次该函数,在全局都可以调用,但是也导致代码混乱使代码语义化开发维护变得困难,在严格模式下不可用。
<script>
function scope() {
aaa = "Tom" //全局变量
}
scope();
console.log(aaa) //"Tom"
</script>