[谁能解释为什么我们可以不先声明就可以赋值吗?据我了解,我们需要先声明一个变量(var VisitorName =提示符(“输入您的名字:”)。如果不是变量,什么是visitorName?非常感谢!
visitor_name = prompt("Input your name : ");
if(visitor_name !=null && visitor_name != ""){
alert("Your name is: " + visitor_name);
} else {
alert("No Name User")
}
创建javascript时,它应用于小型脚本,并且通常由新手程序员使用。结果,它被设计为容忍一些草率的编码实践。它执行此操作的方法之一是,如果您未能声明变量,它将为您创建一个全局变量。
此行运行时:
visitor_name = prompt("Input your name : ");
Javascript将在名为window
的visitor_name
对象上创建一个属性。之后,无论何时您引用visitor_name,由于没有其他具有该名称的变量,它将访问window.visitor_name
我建议您避免使用JavaScript的此“功能”,而只需显式声明变量。
这是因为JavaScript引擎内部将第一行代码解释为:
var visitor_name;
visitor_name = prompt("Input your name : ");
Javascript变量是松散类型的,这意味着您可以将任何类型的值分配给变量。
不带var关键字声明的变量的范围将成为全局变量,而与声明的位置无关。可以从网页的任何位置访问全局变量
x = 1;
console.log(x);
x = "one";
console.log(x);
但是不建议您声明没有数据类型的变量,因为它会干扰其他变量的范围,并且可能会更改某些全局变量的值。