2016-01-19 2 views
1

Я разрабатываю оконное приложение для сравнения исходного кода с node-webkit, и я хочу проверить нулевую функцию.Как проверить «null» в javascript (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[\w\d]*/g); 
         if(keys[0] == null) { //**problem line** 
          alert('This line is null'); 
         } else { 
          alert(keys[0]); 
         } 
       } 
      } 

Если я выполнить этот щелчок событие, произошла ошибка.

Uncaught TypeError: не могу прочитать свойство '0' в нуль

Как я могу исправить эту проблему ..

помочь мне

пс. Я попытался keys[0] === null, typeof keys[0] == 'null', !keys[0] и т.д ...

ответ

1

просто используйте:

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

я пытался кода, но произошла такая же ошибка .. –

+0

'.match' может вернуть' 'null', нуль [0]' выбросит эту ошибку. Вы тоже должны защищаться от этого дела. – elclanrs

+0

Я считаю, что ключи не массивы. удалите "[0]". –

0

его не keys[0] это нуль. его keys. Посмотрите на ошибку, он не может прочитать свойство 0 из null, что означает, что он не может считать свойство нулевой переменной . Ваше регулярное выражение не соответствует чему-либо, поэтому оно возвращает null.

решение:

if (keys && keys[0])

+0

Благодаря вашему приходу. Я понимаю ключи не массивом, но если ключи не являются нулевыми, существуют ключи [0]. Почему существует [0]? –

+0

Я думаю, что я понимаю ваш вопрос. Для ответа я укажу вам на эту ссылку [здесь] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/match). 'match' вернет массив **, если он найдет совпадение ** и' null', если ** совпадений не найдено **. Лучше всего узнать, как работает этот метод, прежде чем вы мучаетесь над ним. – Antiokus

0

массива [индекс] является нулевым или не определено.

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

массив [index] имеет значение null и undefined.

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

Благодаря совету Jakir! –

+0

Он должен работать как ваше условие. –

0

Попробуйте это:

if(!keys || keys.length === 0) { //**problem line** 
    alert('This line is null'); 
}else { 
    alert(keys[0]); 
} 
+0

Благодаря вашему авизию saikumar! –

Смежные вопросы