Краткое содержание
Я просто подумал о трех методах сейчас. Если читатели думают о других хороших методах, они также могут общаться.
Parseint
бит оператор
Math.floor Math.ceil
Описание
1. Парсеант
1. Пример
parseint ("13nash"); // 13parseint ("") // nanparseint ("0xa") // 10 (шестнадцатеричный) parseint ("13") // 13parseint ("070") // es3 - 56 (окт) ES5 - 70PARSEINT (070) // ES3 и ES5 - 56 век.2. Правила конверсии:
(1). В соответствии с примером (1), Parseint будет проанализирован, пока не остановится, когда он не номера
(2). Согласно примеру (2), это NAN при анализе пустой строки, а не 0
(3). Согласно примеру (3), Parseint может преобразовать шестнадцатеричные числа в десятичные
(4). Согласно примеру (4), Parseint игнорирует пространства строки
3. Недостатки:
(1). Согласно примеру (5), мы можем знать, что Parseint несовместим при преобразовании восьмиугольных массивов. ES3 будет рассматривать 070 как восьмиугольное значение, но ES5 будет рассматривать 070 году как десятичный.
(2). В соответствии с примером (6) (7) мы можем знать, что при выполнении Parseint он сначала преобразует параметр в строку, а затем выполнит его в целое число
4. Объяснение: Почему (5) (6) казни конвертируют 070 в целые числа, но результаты разные? Это также второй момент в том, как решить недостатки.
Потому что, читая официальную документацию, я видел, если строка не является строкой, она преобразуется в одну. Этот отрывок. То есть, если параметр не является строкой, он сначала преобразует его в строку, а затем в целое число. Например, Parseint (070) в примере (6) фактически преобразует 070 в строку сначала. Вы можете попробовать 070+ "" или String (070) и знают, что 070 будет преобразован в "56", потому что 070 - восьмиуголия. Затем он становится Parseint ("56"), а последнее целое число составляет 56. Будь вы в ES3 или ES5, это 56
2. Бит -оператор
1. Пример
Console.log (0 | "123.45") // 123console.log (0 | 123.45) // 123console.log (0 ^ 123.45) // 123console.log (~~ 123.45) // 123
2. При использовании операторов битов он сначала преобразует операнд в целое число, что удобно для работы. 0 и другие значения не изменят значение операции
3. math.floor и math.ceil
1. Пример
console.log (math.floor (2.3) // 2console.log (math.floor (-2,3) //-3console.log (math.ceil (2.3) // 3console.log (math.ceil (-2,3) //-2
2. Они недостаточно: Math.floor получает минимальное целое число от числа; в то время как Math.ceil получает максимальное целое число. Итак, если бы мы округлили -2,3, мы получим -2, но если бы мы использовали Math.floor, мы получим -3. 2.3 использует Math.ceil, чтобы получить 3, но нам просто нужно 2.
3. Решите:
// Определите функцию функции самостоятельно GetInt (val) {return val> 0? Math.floor (val): math.ceil (val);}