目录
二、Number类 Number - JavaScript | MDN
05 - Number.parseInt(string[, radix])
三、Math对象 Math - JavaScript | MDN
一、包装类
首先我们思考一个问题,基本数据类型是保存在栈中的,保存的是一个值,但是为什么,却可以调用一下方法呢
const name = "Hello World"
const height = 1.8888888
console.log(name.length)
console.log(name.split(" "))
console.log(height.toFixed(2))
JavaScript的原始类型并非对象类型,所以从理论上来说,它们是没有办法获取属性或者调用方法的
原因 : 因为JavaScript为了可以使其可以获取属性和调用方法,对其封装了对应的包装类型
默认情况,当我们调用一个原始类型的属性或者方法时,会进行如下操作 :
- 根据原始值,创建一个原始类型对应的包装类型对象
- 调用对应的属性或者方法,返回一个新的值
- 创建的包装类对象被销毁
通常JavaScript引擎会进行很多的优化,它可以跳过创建包装类的过程在内部直接完成属性的获取或者方法的调用
// 栗子
let name = 'coder'
console.log(name.length)
// 进化🧬!!!
let name = 'coder'
// 1. 转变为包装类型,变为String对象
name = new String(name)
// 2. 所以可以调用方法
console.log(name.length)
// 3. 一旦调用完后,后续不再操作属性或方法时,会把该对象销毁,重新变成基本类型
name = 'coder'
tip :
包装类类型是针对number,string,boolean三种基本类型来说的
null、undefined没有任何的方法,也没有对应的“对象包装类”
二、Number类 Number - JavaScript | MDN
1. 静态属性
01 - Number.MAX_VALUE
// 表示在 JavaScript 里所能表示的最大数值
console.log(Number.MAX_VALUE)
02 - Number.MIN_VALUE
// 表示在 JavaScript 中所能表示的最小的正值
console.log(Number.MIN_VALUE)
03 - Number.MAX_SAFE_INTEGER
// 表示在 JavaScript 中最大的安全整数
console.log(Number.MAX_SAFE_INTEGER)
04 - Number.MIN_SAFE_INTEGER
// 代表在 JavaScript 中最小的安全的 integer 型数字
console.log(Number.MIN_SAFE_INTEGER)
05 - Number.parseInt(string[, radix])
// 转换为正整数
const n = '90.123';
console.log(Number.parseInt('0xF', 16));
console.log(Number.parseInt(n));
// 因为这个方法也在window上, 是同一个, 所以可以直接调用
parseInt(n)
06 - Number.parseFloat()
// 转换为小数
const num = '123.521';
console.log(Number.parseFloat(num));
// 因为这个方法也在window上, 是同一个, 所以可以直接调用
parseFloat(num)
2. 对象方法
01 - toString(base)
- base 的范围可以从 2 到 36,默认情况下是 10
- 如果是直接对一个数字操作,需要使用..运算符
let num = 100
console.log(num.toString(2)) // 二进制
console.log(num.toString(8)) // 八进制
console.log(num.toString(10)) // 十进制
console.log(num.toString(16)) // 十六进制
// 如果是数字直接操作 .. 写两个小数点
console.log(123..toString(8))
02 - toFixed(digits)
digits的范围是0到20(包含)之间
注意 : 返回的是一个字符串
var numObj = 12345.6789;
numObj.toFixed(); // 返回 "12346":进行四舍六入五看情况,不包括小数部分
numObj.toFixed(1); // 返回 "12345.7":进行四舍六入五看情况
numObj.toFixed(6); // 返回 "12345.678900":用 0 填充
三、Math对象 Math - JavaScript | MDN
1. Math.PI
console.log(Math.PI) // 3.141592654
2. Math.floor : 向下取整
const num = 3.79
console.log(Math.floor(num)). // 小数点后全部舍去,只留整数部分。 结果为3
3. Math.ceil : 向上取整
const num = 3.79
console.log(Math.ceil(num)). // 小数点后全部舍去,整数部分加一
4. Math.round : 四舍五入
const num = 3.79
console.log(Math.round(num)). // 四舍五日运算
5. Math.random : 随机数
Math.random(). // 生成0-1 => [0,1) => 包含0,不包含1的 随机数
//生成 [a,b) 区间的随机数
Math.floor(Math.random() * (b - a)) + a
// 栗子,生成[5,50)的随机数
Math.floor(Math.random() * (45)) + 5
6. Math.pow() : 幂运算
Math.pow(2,3) // 2的3次方 === 8
// ES6之后,有简便写法
2 ** 4 // 2的4次方 === 16