来自javascript“未定义某些常量字符串”的奇怪错误消息

时间:2014-11-02 02:38:00

标签: javascript

在下面的代码中,变量dogName在被调用之前被声明,但是没有赋值给它。这意味着我希望JavaScript将其视为null。

function myDog() {
    var dogName;
    console.log(dogName + 'says woof');
    dogName = 'fido';
}
myDog();

但令我震惊的是错误信息是

undefined says woof 

为什么呢?我认为错误信息必须是"空值!"或者根本没有错误消息,它可以简单地显示" null表示woof"。

为什么" undefined说woof"被抛出了?

编辑:它向我暗示"说woof"未定义!

2 个答案:

答案 0 :(得分:1)

如果您希望将变量初始化为null,则应为:

var dogName = null;

否则,新变量的默认值为undefined

答案 1 :(得分:0)

来自https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript

  

JavaScript区分null,这是一个表示故意非值(并且只能通过null关键字访问)的值,以及undefined,它是类型' undefined&#39的值;这表示未初始化的值 - 即,尚未分配的值...在JavaScript 中,可以声明变量而不为其赋值。如果您这样做,则变量的类型为undefined 。"