在下面的代码中,变量dogName在被调用之前被声明,但是没有赋值给它。这意味着我希望JavaScript将其视为null。
function myDog() {
var dogName;
console.log(dogName + 'says woof');
dogName = 'fido';
}
myDog();
但令我震惊的是错误信息是
undefined says woof
为什么呢?我认为错误信息必须是"空值!"或者根本没有错误消息,它可以简单地显示" null表示woof"。
为什么" undefined说woof"被抛出了?
编辑:它向我暗示"说woof"未定义!
答案 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
。"