ES6数值和对象方法扩展

数值扩展

1.Number.EPSILON

Number.EPSILON 是 JavaScript 能够表示的最小精度。误差如果小于这个值,就可以认为这两个数值是相等的,即不存在误差了。比如我们经常遇到的(0.1+0.2 === 0.3)为false的问题,通过Number.EPSILON就可以完美解决。

console.log(0.1+0.2 === 0.3) //false
function equal(a,b){
    if(Math.abs(a-b) < Number.EPSILON){
        return true
   }else{
        return false
   }
}
console.log(equal(0.1+0.2,0.3)) //ture

2.Number.isFinite

是用来检测一个数值是否为有限数的,返回值为Boolean类型

console.log(Number.isFinite(100)) //true
console.log(Number.isFinite(100/0))  //false
console.log(Number.isFinite(Infinity)) //false

3.Number.isNaN

检测数值是否为NaN,和传统的方法区别是不会隐式转换

Number.isNaN(100) // false
Number.isNaN(NaN) // true
Number.isNaN('100') // false
Number.isNaN(true) // false
Number.isNaN(9/NaN) // true
Number.isNaN('true'/0) // true
Number.isNaN('true'/'true') // true

4.Number.parseInt和Number.parseFloat

字符串转换成整数和浮点数。

Number.parseInt('1314520love') //1314520
Number.parseFloat('3.1415爱你') //3.1415

5.Number.isInteger

判断一个数值是否为整数。javascript中12.0和12被认为是同一个数,所以12.0也同样被认为是整数。

Number.isInteger(12) //true
Number.isInteger(12.0) //true
Number.isInteger(1.5) //false
Number.isInteger(0) //true 
Number.isInteger("0") //false

6.Math.trunc

将数值的小数部分去掉。如果遇到纯数字字符串,也会被识别为数字来处理。同时true返回1,false返回0.

Math.trunc(3.5) // 3
Math.trunc('3.5') // 3
Math.trunc('abc') // NaN
Math.trunc(true) // 1
Math.trunc(false) // 0
Math.trunc(0) // 0

7.Math.sign

判断一个数值是正数、负数还是0.

如果为正数,返回1,负数返回-1,0返回为0,其他返回为NaN(true被认为1来处理,false被认为0来处理).

Math.sign(100) // 1
Math.sign(-100) // 0
Math.sign(0) // 0
Math.sign('abc') //NaN
Math.sign(true) // 1
Math.sign(false) // 0

8 .二进制和八进制的表示方法

二进制以0b开头,八进制以0o开头

let b = 0b1010  //二进制
let o = 0o777 //八进制
let d = 100 //十进制
let x = 0xff // 十六进制
console.log(b) // 10
console.log(o) // 511
console.log(d) // 100
console.log(x) // 255

Object扩展

1.Object.is

判断两个值是否相等。Object.is()方法能判断NaN,这个有异于传统的方法。

Object.is(1,2) // false
Object.is(1,1) // true
Object.is(NaN,NaN) //true
console.log(NaN === NaN) //false

2.Object.assign

Object.assign(op1,op2)可以把两个对象op1op2进行合并,如果两者都具有的属性,后者op2的属性会覆盖前者op1的属性值,非共同的部分则都保留.同时第一个参数op1的值也更新为最新合并后的值.

let op1 = {
    name:'mnn',
    sex:'男',
    age:28,
    map:'nicai'
}
let op2 = {
    name:'孟繁胜游',
    sex:'男',
    age:18,
    hobby:'love'
}

console.log(Object.assign(op1,op2)) 
console.log(op1)
// {
//     age: 18
//     hobby: "love"
//     map: "nicai"
//     name: "孟繁胜游"
//     sex: "男"
// } 

3.Object.keys、Object.values

Object.keys表示获取对象的键,返回一个数组;Object.values表示获取对象键值,返回一个数组.

const school = {
    name:'mnn',
    cities:['北京','上海','广州'],
    skill:['javascript','vue','nodeJs']
}
Object.keys(school)  // ['name','cities','skill']
Object.values(school)  // ['mnn',"['北京','上海','广州']","['javascript','vue','nodeJs']"]

4.Object.entries

返回一个数组,每个数组的值又是一个数组,包括键和键值.

const school = {
    name:'mnn',
    cities:['北京','上海','广州'],
    skill:['javascript','vue','nodeJs']
}
Object.entries(school)  // [['name', 'mnn'],['cities',['北京','上海','广州']],['skill',['北京','上海','广州']","['javascript','vue','nodeJs']]]
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇