6 ответов:
они не эквивалентны. Первый будет выполнять блок после
ifзаявление еслиmyVarи истина (т. е. значениеtrueв условном), в то время как второй будет выполнять блок, еслиmyVar- это любое значение, кромеnull.единственными значениями, которые не являются истинными в JavaScript, являются следующие (a. k. a.ложь значения):
nullundefined0""(пустая строка)falseNaN
вот как вы можете проверить, если переменная не null:
if (myVar !== null) {...}блок будет выполнен, если myVar не равен null.. он будет выполнен, если myVar не определен или false или
0илиNaNили что-нибудь еще..
есть читать на этом посту: http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-2/
у него есть несколько хороших советов для JavaScript в целом, но одна вещь, которую он упоминает, заключается в том, что вы должны проверить null, например:
if(myvar) { }Он также упоминает то, что считается "фальшивым", что вы можете не понять.
есть еще один возможный сценарий, с которым я только что столкнулся.
Я сделал вызов ajax и получил данные обратно как null, в строковом формате. Я должен был проверить это так:
if(value != 'null'){}Итак, null была строкой, которая читала "null", а не действительно была null.
EDIT: следует понимать, что я не продаю это так, как это должны быть сделано. У меня был сценарий, где это был единственный способ сделать это. Я не уверен почему... возможно, парень, который написал back-end, неправильно представлял данные, но, несмотря на это, это реальная жизнь. Это расстраивает, когда это голосует кто-то, кто понимает, что это не совсем правильно, а затем голосует кто-то, кому это действительно помогает.
Если
myVarравно null, то если блок не выполнить в противном случае он будет выполняться.
if (myVar != 'null') {...}
два условных оператора, которые вы перечисляете здесь, не лучше друг друга. Использование зависит от ситуации. У вас есть опечатка, кстати, во 2-м примере. После восклицательного знака должен быть только один знак равенства.
1-й пример определяет, если значение в myVar true и выполняет код внутри {...}
второй пример оценивает, если myVar не равно null и если это так он будет выполнять ваш код внутри {...}
Я предлагаю взглянуть на условные операторы для большего количества методов. После того, как вы знакомы с ними, вы можете решить, когда они вам нужны.
Comments