是";“未定义”;在Javascript中,是错误还是通知?

是";“未定义”;在Javascript中,是错误还是通知?,javascript,Javascript,弹出窗口或控制台日志中的未定义消息(例如,调用不存在的变量时)是错误消息还是仅是通知消息 在PHP中有一个区别,因此,请查看您对此主题的解释。两者都不是,它是一个(或者在警报的情况下是一个值的字符串化) 是否可以忽略变量/属性/未定义的内容取决于所编写程序的需要。如果一条消息在显示“甜杯形蛋糕”时显示“未定义”,那么这将是一个逻辑错误;相反,如果一条消息显示undefined(未定义),而它仅仅是为了反映一个可以合法地未定义的内部状态,那么它不会是一个错误。我觉得它像一条不完整的错误消息;就像开

弹出窗口或控制台日志中的
未定义
消息(例如,调用不存在的变量时)是错误消息还是仅是通知消息

在PHP中有一个区别,因此,请查看您对此主题的解释。

两者都不是,它是一个(或者在警报的情况下是一个值的字符串化)


是否可以忽略变量/属性/未定义的内容取决于所编写程序的需要。如果一条消息在显示“甜杯形蛋糕”时显示“未定义”,那么这将是一个逻辑错误;相反,如果一条消息显示undefined(未定义),而它仅仅是为了反映一个可以合法地未定义的内部状态,那么它不会是一个错误。

我觉得它像一条不完整的错误消息;就像开发人员打印“这永远不会出现!11”时,“未定义”只不过是一个值,因此单独查看它并不会赋予消息任何意义或重要性。

“未定义”的意思正是它所说的-您引用了一个未定义的变量名

有些语言,比如Python,对这类事情更严格,如果您尝试这样做,就会抛出错误


Javascript假定您知道自己在做什么,因此不会抱怨。

未定义的
是一种特殊的数据类型。例如,常见情况是函数调用中缺少参数:

var foobar = function(val)
{
    alert(typeof val); // alerts 'undefined'
    alert(foobar.length); // throws an error
}

foobar();

此示例函数的作者在尝试访问
length
属性之前,应该先检查
val
的类型。

未定义是其名称所示的未定义的符号,如

var a=new Array(10);
它是一个数组:
array.isArray(a)
true
a.length
为10;但是它所包含的都是
未定义的
值:例如
a[5]
未定义的
。因此,这不是错误

错误消息还是只是一条通知消息


也不是。

严格地说,仅限于JavaScript,没有任何通知。您可能有语法错误或运行时错误。在这两种情况下,代码都将终止。如果您收到一个显示未定义的警报,那么这不是一个错误。因此,我可以忽略检查它是否存在?如果它只是一个类似于PHP的通知,我将忽略它。如果这是一个错误,我将不得不进行doe检查。或者您有什么建议?您是否可以忽略变量/属性/任何未定义的内容取决于您正在编写的程序的需要。