2014-11-18 5 views
0

я был просто интересно, если бы какой-либо выигрыш в производительности с выполнениемКаков наилучший способ начать проверку?

if (variable !== undefined) 

по сравнению с

if (variable.length) 

Я вижу как много, но они происходят со мной, как то же самое.

+3

вы получите сообщение об ошибке, если 'variable' не определено и вы пытаетесь получить доступ к' .length'. –

+0

Они делают совершенно разные вещи ?! – Bergi

+0

Если они используются для разных целей, я хотел бы знать, пожалуйста. Спасибо –

ответ

1

Я бы использовал if (variable !== undefined). Как заявил @NG. в приведенных выше комментариях альтернатива будет вызывать ошибку, если variableне определено.

Не должно быть никаких различий в производительности. Если что-нибудь, скорость и точность могут быть лучше на !== больше, чем .length.

Это займет немного больше мощности процессора для вычисления .length, чем это делает, чтобы проверить, если variable является не неопределенная.

Я надеюсь, что это поможет!

0

Использование JSLitmus.js

43977 Ops/сек для if (variable !== undefined)

43703 OPS/сек для if (variable.length)

Там ничем не отличается от производительности, но, как упоминалось в комментариях - с помощью .length вызовет ошибку, если переменная не определена.

Надеюсь, это поможет.

+0

Какие * значения * вы использовали в 'variable' для этих тестов? Кроме того, вряд ли имеет смысл сравнивать свою работу, поскольку они, очевидно, делают разные вещи. – Bergi

+0

Да, они делают разные вещи, но ОП просил об этом. переменная имеет строку ('test') –

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