ES6常用的语法(工具函数)

一、过滤数据中的false等

 *
 * @description   过滤数据中的false
 * @param  {arr}  过滤数组
 */

const filterFalse = (arr) => {
    if (!arr || arr.length == 0) return
    return arr.filter(Boolean)
};

const ele = [23,11,"123",'&&',null,false]

console.log(filterFalse(ele))  //[23,11,"123","&&"]

二、空值合并运算符


const nullKey = null 
const empty = ''
const somenum =12

const d = nullKey??'dd'

const e= empty??'ee'

const f = somenum??'ff'

console.log(d,e,f)  // dd,'',12

三、从数组中获取最大值和最小值

const numbers =[12,23,112,3,1,23,1,23]

const max  = Math.max(...numbers)

const min  = Math.min(...numbers)

console.log(max,min)  //112,1

四、RGB 与 HEX的转换


/**
 *
 * @description   RGB转为HEX
 * @param  {r,g,b}  数字
 */


const rgbToHex = (r, g, b) => {
    const toHex = (num) => {
        const hex = num.toString(16)
        return hex.length === 1 ? `0${hex}` : hex
    }

    return `#${toHex(r)}${toHex(g)}${toHex(b)}`
};


console.log(rgbToHex(17,65,35))  //"#114123"

/**
 *
 * @description   HEX转为RGB
 * @param  {hex}  hex字符串
 */


const hexToRgb = (hex) => {
    let arr = [hex.slice(1, 3), hex.slice(3, 5), hex.slice(5, 7)]
    let res = arr.map(item => {
        return parseInt(item, 16)
    })
    return `rgb(${res.join(',')})`
};

console.log(hexToRgb("#114123"))  //rgb(17,65,35)

五、清空数组

const arrs =[1,23,3,12,3,1,]

arrs.length=0

console.log(arrs) //[]

六、保留指定位小数

const nums = 0.123124124
const fixed1 =nums.toFixed(4)
const fixed2 =nums.toFixed(6)

console.log(fixed1,fixed2)  //0.1231,0.123124

七、数组去重

const ARR = [11,22,11,21,1,1,1,1,2,22,11]

const res = [...new Set(ARR)]

console.log(res)  // [11,22,21,1,2]


八、冻结对象

const Obj ={
    key:'1',
    value:'123',
}

Object.freeze(Obj)

Obj.value = "10"  //不会变

console.log(Obj)  //{"key":"1","value":"123"}

九、从数组中随机选择一个值

const ele = [23,11,"123",'&&',null,false]


/**
 *
 * @description   生成随机index
 * @param  arr    数组
 */
const random = (arr)=> arr[Math.floor(Math.random()*arr.length)]

const randomEle = random(ele)

console.log(randomEle)  // &&

十、 交换变量的值

let aa ='张三'
let bb = '李四'

[aa,bb] = [bb,aa]

console.log(aa,bb)  //李四   张三

十一、解构赋值


const object ={
    key:'1',
    value:'2',
    array:["a","b","c"]
}

const {key,value,array} =object

const [a,b,c] = array

console.log(key,value,array,a,b,c)  //1,2,["a","b","c"],a,b,c

十二、=== 和 == 的区别


//==   隐性类型转换
//===  无类型转换

0 ==false //ture
0 === false //false
1 =="1" //ture
1 ==="1" //false
null == undefined //true
null === undefined //false

十三、合并多个对象


const obj1 ={
    key:'1',
    value:'2'
}


const obj2 ={
    name:5,
    index:'3'
}

const obj ={...obj1,...obj2}

console.log(obj)  //{"key":"1","value":"2","name":5,"index":"3"}

十四、十进制与十六进制和二进制的转换

//将十进制转换为二进制或十六进制
const number = 52

const binaryNum = number.toString(2)
const hexNum = number.toString(16)

console.log(binaryNum,hexNum)  //110100,34

//十六进制转为十进制
const hexToNum = parseInt(hexNum,16)
const binaryToNum = parseInt(binaryNum,2)

console.log(hexToNum,binaryToNum)  //52,52

十五、反转字符串



/**
 *
 * @description   反转字符串
 * @param  str    字符串
 * @param  separator    分隔字符
 */

const reverse =(str,separator)=>{
    return str.split(separator).reverse().join(separator)
}

const sentence = '12k  Lucjking false happy!!'

const reverseOne = reverse(sentence,'')

console.log(reverseOne)  //!!yppah eslaf gnikjcuL k21

const reverseTwo = reverse(reverseOne,' ')  //空格

console.log(reverseTwo)  // k21 gnikjcuL eslaf !!yppah

十六、打乱数据顺序

let arr =['12',111,'long',false]

arr = arr.sort(()=>0.5-Math.random())

console.log(arr) //["12",false,111,"long"]


//去除数字之外的所有字符串
let  str = '12312dfsfash^^^^^8r2h3uriuidij2o1i3h423&&&'

let num = str.replace(/\D/g,'')

console.log(num) //12312823213423
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

名字还没想好☜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值