数字的方法和进制转换及相应的面试题

151 阅读1分钟

数字的方法

数字的常用方法

语法: .Math.方法();

随机数: random

取整: 四舍五入: round 向下: floor 向上: ceil

绝对值: abs

开根号: sqrt

乘方: pow

最大: max

最小: min

圆周率: PI

求随机数

因为random只能生成0~1的随机小数,当需要一定范围的随机数时,需要搭配floor(parseInt)函数和数值来达到规定范围。 公式: 范围(数1,数2)=parseInt| ==Math.floor==(Math.random()*(数2+1-数1)+数1); 例子:

1.每次随机生成一个7~9的随机数;
var num=parseInt(Math.random()*((9+1-7)+7);

==提示:== 其他数字方法可以通过 console.log(Math);得到。

进制转换

十进制转化为其他进制: toString(); //该方式会把数字转化为字符串; 其他进制转化为十进制: parseInt(); //第一个参数是转化的数值,第二个参数是当前数值所处的进制;

面试题

var arr = [1, 2, 3].map(parseInt); ==arr打印的结果是什么?== 首先map函数普通形式为map(function(item,index,arry{}),所以可以先转化为 var arr = [ 1, 2, 3].parseInt(item,index)); 由于parseInt可以进行进制转换,第二个参数是当前数值所处的进制,所以范围是2~36。

parseInt(‘1’, 0); // 1 (parseInt的处理方式,这个地方item没有以"0x"或者"0X"开始,8和10这个基数由实现环境来定,ES5规定使用10来作为基数,因此这个0相当于传递了10)
parseInt(‘2’, 1); // NaN (因为parseInt的定义,超出了radix的界限)
parseInt(‘3’, 2); // NaN (虽然没有超出界限,但是二进制里面没有3,因此返回NaN)

故结果为 [1,NaN,NaN]