Эти коды линий одинаковы? - PullRequest
0 голосов
/ 17 февраля 2012

Я хочу знать, делают ли эти два сценария одно и то же:

parseInt(num)?num=parseInt(num):num=str.length

и

num=parseInt(num)||str.length;

А если нет, мне нужно знать, что делает второй.

Ответы [ 3 ]

2 голосов
/ 17 февраля 2012

Да, они такие же, с более поздними ( оценка короткого замыкания ) краткими и красотой JS (или других языков, которые его поддерживают):

num = parseInt(num) || str.length;

Оба в свою очередь короткиесокращение:

if (parseInt(num)){
   num = parseInt(num);
}
else {
   num = str.length;
}

Полезные советы:

  • Не зафиксируйте ключевое слово var перед переменной num, иначе оно войдет в global scope.
  • Всегда указывайте основание для parseInt например parseInt(num, 10), если не требуется иное

Показания:

2 голосов
/ 17 февраля 2012

Да, они делают (но вторая намного более эффективна, так как она не должна запускать parseInt дважды).

1 голос
/ 17 февраля 2012

да, они равны. Это тоже самое:

num = parseInt(num)?parseInt(num):str.length
...