Js基础——变量声明 var let const

发布时间:2019-08-15 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Js基础——变量声明 var let const脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Js的变量特点是松散型,就是说值跟类型是没有关系的,变量只是一个存值的占位符,不会根据初始化存入的值类型,给变量设置特定的类型,所以变量在初始化后,可以在改变值的同时改变值类型。而声明一个变量,如果没有明显的赋值操作,那么默认为赋值undefined
Js中有三种变量声明的方式:varletconst。而这后两种声明方式,是在es6里才出现的。他们可以说是弥补var在变量声明的遗憾,解决了在使用过程中出现的一些问题

VAR声明
var的特点如下:

  1. 作用域范围为封闭的全局函数或是局部函数
  2. 同一个作用域里重复声明同名变量,不会报错
  3. 在嵌套的子函数里,重新声明外层函数中同名的变量,不会改变外层函数中变量的值
  4. 变量可以提升到全局代码或是函数顶端执行,所以打印变量值可以在书写声明变量之前执行,也不会报错,而赋值只有等到执行到赋值那一句才会执行
  5. 没有声明的变量,会被隐式创建为全局变量,即全局对象的属性(独有)
    非声明的变量,只有在赋值的时候才会被创建
    非声明的变量,因为是全局对象的属性,所以可以用delete删除

栗子?

Js基础——变量声明 var  let  const

这个例子说明非声明的变量,变为全局对象的属性,可以delete删除

let声明
let声明变量又称更精确的var,主要应用于块作用域,也就是if for switch以及{}这样的块里,可以出现在它自己声明所在的块和它包含的子块里。
它有这样的特点:

  1. 在同一个块作用域里,重新声明一个同名变量,会报错
  2. 在嵌套中的子块作用域里,重新声明一个与外层块作用域相同的同名变量,不会保留外层块的变量值,因为属于不同的变量作用域
  3. 没有提升作用,所以在变量声明之前使用会报错,这一个现象,也称为:暂存死区
  4. 不能作用全局对象的属性

应用:因为可以是块作用域,所以let的出现,可以代替立即执行函数
栗子?

Js基础——变量声明 var  let  const

这个例子说明,var可以提升变量声明,但是let不可以

Js基础——变量声明 var  let  const

这个例子说明,同名的变量子块中的变量跟外层块中的变量,是不同的两个变量

Js基础——变量声明 var  let  const

这个例子说明,即便是有全局变量,但是在块的作用域里,有let声明的同名作用域起作用,而且在声明之前不可用

Js基础——变量声明 var  let  const

这个例子说明,不能用let声明跟参数同名的变量

Js基础——变量声明 var  let  const

这个例子说明,let的使用,替换了立即执行函数

const声明
const也有let的特点3和4,也是一个块作用域的变量声明方式,除此以外还有自己的特点

  1. 必须在声明的同时赋值初始值
  2. 一旦赋值就不能改变,而且声明的变量通常是常量,用大写表示
  3. 也是因为2的原因,所以不能作为for循环的循环变量

栗子?

Js基础——变量声明 var  let  const

这个例子说明const不能作为for循环的变量

Js基础——变量声明 var  let  const

这个例子说明const声明的变量赋值后不能改,只是同名变量不能再赋值,但是可以给变量的属性赋值

最后来个小总结:
var嘛,能用let的时候就不用var,比如用let的很好的场景:for的循环变量,可以保证每一次循环都是一个新变量,而不是用var时候的同一个变量,if或是switch里面,但是注意一种情况就是let x = x + 1这个时候是会报错的,因为也是犯了未声明就使用的错,赋值操作是@R_777_1715@的,也就是说会先计算好右边的值,才会把最终结果赋值给左边。函数的参数不要用let声明,
const嘛,就用来声明常量,或是不改变初值的变量

参考资料:https://developer.mozilla.org...
https://developer.mozilla.org...
https://developer.mozilla.org...
http://voidcanvas.com/es6-var...
let 和 const 命令
Let It Be - How to declare JavaScript variables
深入浅出ES6:let和const

脚本宝典总结

以上是脚本宝典为你收集整理的Js基础——变量声明 var let const全部内容,希望文章能够帮你解决Js基础——变量声明 var let const所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。