我正在开发用于将源代码与node-webkit进行比较的窗口应用程序,我想检查空函数。
我的代码是
function click1() {
if(swap == true)
var lines1 = $('textarea1').val().split('n'); //compare1
var lines2 = $('textarea2').val().split('n'); //compare2
if (lines1.length == lines2.length) {
for (var i=0;i<lines1.length;i++) {
if(lines1[i] == lines2[i]) {
var keys = lines1[i].match(/b[wd]*/g);
if(keys[0] == null) { //**problem line**
alert('This line is null');
} else {
alert(keys[0]);
}
}
}
如果我执行此单击事件,则会发生错误。
未捕获的类型错误:无法读取空的属性"0"
我如何解决这个问题..
帮帮我
附言。我试过keys[0] === null
、typeof keys[0] == 'null'
、!keys[0]
等...
只需使用这个:
if(keys[0]) {
alert(keys[0]);
} else {
alert('This line is null');
}
它不是空的keys[0]
keys
。查看错误,它无法读取null
的属性0
,这意味着它无法读取空变量keys
的0
属性。您的正则表达式与任何内容都不匹配,因此它会返回 null
。
溶液:
if (keys && keys[0])
array[index] 为 null 或未定义。
if (keys[0] == 'undefined' || keys[0] == null) {
alert('This line is null');
} else {
alert(keys[0]);
}
数组[索引] 为空且未定义。
if (keys[0] == 'undefined' && keys[0] == null) {
alert('This line is null');
} else {
alert(keys[0]);
}
试试这个:
if(!keys || keys.length === 0) { //**problem line**
alert('This line is null');
}else {
alert(keys[0]);
}