var let 和const声明变量的特点
一、var声明变量的特点
- var声明变量为全局声明,当声明在函数内部时为局部变量
- var声明变量存在变量声明提升
- var可以重复定义一个变量,即后面的覆盖前面的
二、let声明变量的特点
- 使用let声明的变量 只在let所在的代码块起作用 (变量绑定)
- 在同一代码块内(块级作用域) 使用let声明的变量 可以重新赋值 但是不能重新声明
- let声明的变量 必须在声明之后才能使用(不存在变量提升)
- 暂时性死区
- 在全局作用域内使用let声明的变量 但是不属于全局对象的属性
三、const声明变量的特点
- 只在const所在代码块内有效,也就是局部有效。当在全局环境中去找时是找不到的。
- 不能重复声明,不能声明提前
- 如果常量值为引用数据类型,只要引用地址不变,就可以修改内部属性
- 声明过后 不允许改变他的值
- cosnt声明和赋值必须一步完成 不允许分开 (声明过后 不允许改变内部存储的地址)
四、三种变量声明的举例应用
实例1代码如下:
<script>
{
let a=12;
}
console.log(a);
</script>
运行结果如下:
引用错误
总结:通常情况下,如果要声明局部变量,那么就必须使用function创建函数作用域;使用let不管是if 还是for,还是普通的{},都能形成块级作用域。
实例2代码如下:
var tem = new Date()