Проверка, является ли переменная пустой в JavaScript?
Существует два вида кода JavaScript для исследования пустой / полной переменной:
if(variable == ''){}
if(!variable){}
Я проверил их обоих, и я достиг одинакового результата. Теперь я хочу знать, (во-первых) они эквивалентны? И (во-вторых), какой из них является более стандартным для проверки пустой / полной переменной?
var variable1 = 'string';
var variable2 = 12;
var variable3 = true;
if(variable1 == ''){alert('empty-one');}
if(variable2 == ''){alert('empty-one');}
if(variable3 == ''){alert('empty-one');}
if(!variable1){alert('empty-two');}
if(!variable2){alert('empty-two');}
if(!variable3){alert('empty-two');}
Как видите, нет alert
,
3 ответа
Первый не является стандартным, он работает только для определенной пустой строки.
Другое будет работать, если значение не соответствует действительности (означает что-то значимое)
например, вар а;
a == '' will give false result
! a will produce true
например, var a = null;
a == '', // false
! a // true
var a = false;
a == '' // fase
! a // true
var a = NaN
a == '' // false
! NaN // true
true == 'true' // false, Boolean true is first converted to number and then compared
0 == '' // true, string is first converted to integer and then compared
==
использования The Abstract Equality Comparison Algorithm
сравнить два операнда
Для получения дополнительной информации посетите http://www.ecma-international.org/ecma-262/5.1/
В JavaScript null,'',0,NaN,undefined
рассмотреть фальси в javascript.
В каком-то смысле вы можете проверить пустой в обе стороны
Но ваш первый код проверяет это ''
и ваше второе условие проверяет, является ли ваша ценность одним из них (null,'',0,NaN,undefined)
На мой взгляд, ваше второе состояние лучше, чем первое, так как мне не нужно проверять null,'',0,NaN,undefined
отдельно
Нет, они не эквивалентны. В случае, если сначала он проверяет, является ли значение variable
равно пустой строке ('') или нет. Так что первый случай будет верным, если variable
значение ''
, Но второй случай будет верным для всех значений, которые являются ложными, т.е. false, 0, '', null, undefined
,