Эти коды линий одинаковы?
Я хочу знать, делают ли эти два сценария одно и то же:
parseInt(num)?num=parseInt(num):num=str.length
а также
num=parseInt(num)||str.length;
А если нет, мне нужно знать, что делают вторые.
3 ответа
Решение
Да, они такие же, с более поздними (оценка короткого замыкания) краткими и красотой JS (или других языков, которые это поддерживают):
num = parseInt(num) || str.length;
Оба в свою очередь являются сокращением этого:
if (parseInt(num)){
num = parseInt(num);
}
else {
num = str.length;
}
Хорошая практика:
- Не зацикливайся
var
Ключевое слово передnum
переменная, иначе она входит в глобальную область видимости. - Всегда указывайте базу для
parseInt
напримерparseInt(num, 10)
если не требуется иное
Показания:
Да, они делают (но второй немного более эффективен, поскольку он не должен бежать parseInt
дважды).
Да, они равны Это тоже самое:
num = parseInt(num)?parseInt(num):str.length