如何';空';签入javascript(节点webkit)?

如何';空';签入javascript(节点webkit)?,javascript,html,node-webkit,Javascript,Html,Node Webkit,我正在开发一个窗口应用程序,用于将源代码与NodeWebKit进行比较,我想检查null函数 我的代码是 function click1() { if(swap == true) var lines1 = $('textarea1').val().split('\n'); //compare1 var lines2 = $('textarea2').val().split('\n'); //compare2 if (lines1.le

我正在开发一个窗口应用程序,用于将源代码与NodeWebKit进行比较,我想检查null函数

我的代码是

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[\w\d]*/g);
                      if(keys[0] == null) { //**problem line**
                          alert('This line is null');
                      } else {
                          alert(keys[0]);
                      }
                 }
             }
功能点击1(){
if(swap==true)
var lines1=$('textarea1').val().split('\n');//compare1
var lines2=$('textarea2').val().split('\n');//compare2
if(lines1.length==lines2.length){
对于(var i=0;i只需使用以下内容:

if(keys[0]) {
  alert(keys[0]);
} else {
  alert('This line is null');
}

它的
keys[0]
不是空的。它的
keys
。看看错误,它不能读取
null的
0
属性,这意味着它不能读取null变量
keys
0
属性。正则表达式与任何内容都不匹配,因此它返回
null

解决方案:


如果(键和键[0])
数组[index]为空或未定义

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]);
}
数组[index]为空且未定义

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]);
}

.match
可能返回
null
null[0]
将抛出该错误。您也必须防止这种情况。我相信键不是数组。请删除“[0]”。噢,谢谢Stitch博士!!多亏了您的解决方案,我才解决了这个问题。但如果键不是null,则键[0]可以正常工作。很高兴提供帮助。)多亏了你的帮助。我理解键不是数组,但如果键不是空的,那么键[0]就存在。为什么存在[0]?我想我理解你的问题。为了得到答案,我将向你指出这个链接。
match
将在找到匹配项时返回一个数组,如果没有找到匹配项时返回
null
。最好在你为之苦恼之前了解该方法的工作原理。感谢你的adivice saikumar!感谢Jakir的建议!