在Javascript中,使用"var"声明的变量具有函数作用域,而不用"var"声明的变量具有全局作用域。这意味着,如果在函数内部使用"var"声明变量,它只能在该函数内访问;而如果不使用"var"声明变量,它可以在整个程序中访问。
在JavaScript中,声明变量时是否使用var关键字,尽管在很多情况下代码都能正常运行,但两者间存在一些重要差异,这些差异主要涉及到变量的作用域以及如何存储于内存中,小编将详细探讨这两种声明方式的区别:

(图片来源网络,侵删)
1、全局变量与局部变量
使用var:当在函数内部使用var声明变量时,该变量将作为局部变量,仅在函数内部可用,如果在函数外部声明,则它会成为全局变量,可被所有函数访问。
不使用var:不使用var关键字直接赋值的变量默认为全局变量,即使是在函数内部声明的,它们也将成为全局对象的属性。
2、作用域提升(Hoisting)
使用var:使用var声明的变量会发生作用域提升,即无论在函数的哪个位置声明,都会被提升到函数的顶部。

(图片来源网络,侵删)
不使用var:不使用var的变量不会发生作用域提升,它们仍在原地生效。
3、初始化和赋值
使用var:使用var声明的变量可以不初始化,此时它们的值为undefined。
不使用var:不使用var直接赋值的变量也必须直接赋值,没有初始化的步骤。
在JavaScript中使用var与不使用var声明变量之间存在显著的差异,理解并正确应用这些差异对于编写清晰、可维护的代码至关重要,开发者应根据实际需求选择合适的变量声明方式,避免因不当使用而导致的潜在错误。

(图片来源网络,侵删)