trunc()保留数值整数
trunc() 执行逻辑很简单,仅仅是删除掉数字的小数部分和小数点,不管参数是正数还是负数
对比parseInt() :注意:
调用parseInt方法时,会隐式地将传入的数字类型用toString方法转换为字符串
在javascript中,小于0.000001的浮点数会以科学计数法来表示
console.log(parseInt('3.14kg')) // 3
console.log(Math.trunc('3.14kg')) // NaN
console.log(parseInt(6.022e23)) // 6
console.log(Math.trunc(6.022e23)) // 6.022e+23
console.log(parseInt(0.0000005)) // 5
console.log(Math.trunc(0.0000005)) // 0
// 0.0000005调用toString的结果会是"5e-7",小于0.000001的浮点数
// parseInt('5e-7') == 5
console.log(Math.trunc(4.0)) // 4
console.log(Math.trunc(4.2)) // 4
console.log(Math.trunc('4.2')) // 4
console.log(Math.trunc('abc')) // NaN
// 隐式转化数值类型
console.log(Math.trunc('123.456')) // 123
console.log(Math.trunc(true)) //1
console.log(Math.trunc(false)) // 0
console.log(Math.trunc(null)) // 0
console.log(Math.trunc(NaN)) // NaN
console.log(Math.trunc(undefined)) // NaN
console.log(Math.trunc()) // NaN
Math.ceil()和Math.floor() 对比,数值正负不确定可以使用Math.trunc()
sign() 判断数值正数,负数,0
sign() 只会有五种结果 1, -1, 0,-0, NaN
console.log(Math.sign('6')) // 1
console.log(Math.sign(6)) // 1
console.log(Math.sign(-6)) // -1
console.log(Math.sign('-6.33')) // -1
console.log(Math.sign("123.456")) // 1
console.log(Math.sign(0)) // 0
console.log(Math.sign(-0)) // -0
// 隐式转化数值类型
console.log(Math.sign(true)) // 1
console.log(Math.sign(false)) // 0
console.log(Math.sign(null)) // 0
console.log(Math.sign(NaN)) // NaN
console.log(Math.sign(undefined)) // NaN
console.log(Math.sign()) // NaN
console.log(Math.sign("abc")) // NaN
cbrt(x) 数值立方根 x 3 \sqrt[3]{x} 3x
console.log(Math.cbrt(-0)) // -0
console.log(Math.cbrt(0)) // 0
console.log(Math.cbrt(1)) // 1
console.log(Math.cbrt('1')) // 1
console.log(Math.cbrt(-1)) // -1
console.log(Math.cbrt('abc')) // NaN
console.log(Math.cbrt(Infinity)) // Infinity
console.log(Math.cbrt(-Infinity)) // -Infinity