我有一个对象,我需要检查它是否已定义。另外,我还想检查该对象的属性是真还是假。
所以我想要的是
if ((typeof myVar !== 'undefined') && (myVar.isMale === false)) {
// Do something 1
}
else{
// Do something 2
}
但是这个逻辑给了我错误
Uncaught TypeError: Cannot read property 'isMale' of null
处理这种情况的最佳登录是什么?
谢谢!
答案 0 :(得分:6)
您需要进一步测试,排除:
if (typeof myVar != 'undefined' && myVar && myVar.isMale === false) {
或包含:
if (typeof myVar == 'object' && mVar && myVar.isMale === false) {
但是有些对象返回的值不是" object"使用typeof测试(例如主机对象可以和Function对象一样)。
或通过显式转换:
if (typeof myVar != 'undefined' && Object(myVar).isMale === false) {
额外的&& myVar
测试是捕获NaN和null,它通过 typeof 测试。