【问题标题】:Assigning a value without declaring it first?分配一个值而不先声明它?
【发布时间】:2020-05-09 03:38:52
【问题描述】:

谁能解释一下为什么我们可以在不先声明的情况下分配一个值。据我了解,我们需要先声明一个变量 (var visitorName = prompt("Input your name: ")。如果没有变量,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 variables alert prompt


【解决方案1】:

创建 javascript 时,它被期望用于小型脚本,并且通常由新手程序员使用。因此,它旨在容忍一些草率的编码实践。它执行此操作的方法之一是,如果您未能声明变量,它将为您创建一个全局变量。

当这条线运行时:

 visitor_name = prompt("Input your name : ");

Javascript 将在名为visitor_namewindow 对象上创建一个属性。稍后,任何时候你引用visitor_name,因为没有其他变量具有该名称,它将访问window.visitor_name

我建议你避免使用 javascript 的这个“特性”,而只是明确地声明你的变量。

【讨论】:

    【解决方案2】:

    Javascript 变量是松散类型的,这意味着您可以为变量分配任何类型的值。

    不带 var 关键字声明的变量的作用域变成全局变量,无论它在哪里声明。可以从网页中的任何位置访问全局变量

    x = 1;
    console.log(x);
    x = "one";
    console.log(x);
    

    但是不建议声明没有数据类型的变量,因为它会混淆其他变量的范围,并且可能会更改某些全局变量的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-27
      • 1970-01-01
      • 2010-10-14
      • 2021-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多