Оператор // в JavaScript: 5.0 // 2.0 = 5? - PullRequest
2 голосов
/ 02 ноября 2011

Есть ли в JavaScript оператор //?

Потому что в Python у нас есть:

5 // 2.0 # => 2.0
5 / 2.0  # => 2.5

Итак, я попробовал в JavaScript:

5.0//2.0 

и я получил 5! Что там происходит?

Я прочитал, что в JavaScript нет такой вещи как оператор //. В таком случае, почему я не получил исключение или, что лучше, ошибку от лексера?

Я использовал эту строку:

document.write(eval("5.0//2.0"));

В Firefox 3.6.23.

Ответы [ 4 ]

7 голосов
/ 02 ноября 2011

// - это комментарий в javascript.

Попробуйте:

   5 / 2; //yields 2.5
   Math.floor(5/2); //yields 2

Также не используйте eval.

Просто выполните document.write(5/2);

2 голосов
/ 02 ноября 2011

В JavaScript // не является оператором, оно обозначает комментарий.

1 голос
/ 02 ноября 2011

// используется для комментирования в JavaScript.

0 голосов
/ 16 июня 2013

// начинает комментарий. Чтобы сделать целочисленное деление, сначала выполните обычное деление, используя /, а затем округлите его. Это можно сделать с помощью &-1, ^0, |0 или ~~, чтобы от быстрой до медленной, измеренной на моем ноутбуке. Между первыми тремя есть ощутимая разница, но она небольшая. Последний действительно медленный по сравнению.

Если сложить все вместе, 5/2&-1 даст 2. Он округляется до нуля.

...