在JS中,变量声明有三种方式,他们分别是var、const和let。由于JS是弱语言类型,所以不像C/C++、Java等编译型语言一样要具体声明数据类型。

我们可以通过这三个关键字创建字符串变量"Dotcpp":

 var s1 = 'Dotcpp'
 let s2 = 'Dotcpp'
 const s3 = 'Dotcpp'

我们可以把var和let归为一类,因为它们声明的变量都可以重新赋值;而const单独归为一类,原因在于const声明的变量不可以重新赋值

在ES5之前,一直都是在使用var,但是使用var会隐藏很多潜在的问题,这里简单枚举3个重要问题:

1. 未声明却能使用,不符合编程习惯:

/*未声明却可以使用,不符合编程习惯*/
console.log(s)
var s

2. 同一个变量可以被多次声明

/*重复声明变量而不报错*/
var s='Dotcpp'
var s ='dotcpp.com'
console.log(s)//后声明会进行值的覆盖,打印dotcpp.com

3. for循环参数污染外部作用域

 /*控制台打印0和1*/
  for(var i=0;i<2;++i)
{
  console.log(i);
}
console.log(i);//这里会打印2!

于是,在ES6时,引入了let和const来解决var声明变量的问题。所以我们强烈推荐读者使用let而不是var。

总结,用let声明变量,用let声明变量,用let声明变量!(重要的事情说三遍)

点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)