只是对
JavaScript做一点介绍.我习惯于经常在C中测试我的指针的存在,以免崩溃.
从来没有读过哈姆雷特,但是我读了this page关于null和未定义的JavaScript.
在一个坚果我可以:
if (varname == null) if (varname === null) if (typeof(varname) != 'undefined') if (varname != undefined) if ('varname' in object) if (object.hasOwnProperty('varname'))
老实说,对我来说有点太多了:) JavaScript中用于测试变量的经典方法是什么,以避免崩溃?
解决方法
由于读取未声明的全局变量抛出错误,检查变量最好使用第三个示例,即示例.
if (varname == null)
会告诉你值是否被定义,并且如果未声明则会引发错误.
if (varname === null)
将告诉您值是否被定义,并且如果未声明,则抛出错误.
if (typeof(varname) != 'undefined')
会告诉你是否定义了变量,而不会抛出错误.
if (varname != undefined)
与第一个相反.
if ('varname' in object)
会告诉你对象本身或其原型链的某个地方是否具有属性.这不能保证适用于主机对象.
if (object.hasOwnProperty('varname'))
会告诉你对象是否有自己的属性,忽略原型链.
如果已经设置了名为“hasOwnProperty”的属性,这将会中断.
if (Object.hasOwnProperty.call(object,'varname'))
是最后一个更可靠的版本.