系列前言

这段时间为了完成我们的AIGal项目的前后端开发,我正在学习$JavaScript$。中途遇到的一些很多地方没有提到的小东西想记录一下,于是就有了这个系列。

本章前言

在MDN WebDoc学习$JavaScript$的时候声明变量使用的都是`let`,但是在RUNOOB菜鸟教程发现基本是`var`,于是想了解一下其中的区别。

正文

varlet在JavaScript中有一些重要的区别:

1. 作用域

- var:是函数作用域或全局作用域。即,在函数内部声明的var变量只在该函数内有效。

- let:是块级作用域。即,let在最近的花括号{}内有效,无论是一个函数、循环还是条件语句。

2. 变量提升

- var:声明会被提升到当前作用域的顶部,但赋值不会。因此,可以在声明之前使用,但值是undefined

- let:也会提升,但在实际声明之前不能使用,会导致ReferenceError

3. 重复声明

- var:允许在同一作用域内重复声明变量。

- let:在同一块级作用域内不能重复声明同名变量。

总结

上面写的这些特性使得let通常比var更安全,因为它可以避免一些常见的错误。一般来说,现在建议使用let(或者const)而不是var

总体来说,感觉let更像是$C++$等等更严谨的语言,而var就很有$JavaScript$原本的比较自由的风格,但是为了逐渐严谨,这些“自由”的语法正在逐步被$JavaScript$淘汰。