学习打卡第一天

112 阅读2分钟

学习打卡第一天

18个不容错过的es6小技巧

// 1.打乱数组

const arr = [1, 2, true, ""];

arr.sort(() => {

return 0.5 - Math.random();

});

// 2.去除数字之外的所有字符

const arr1 = [1, 2, "", "name", null, 0, false];

const newArr1 = arr1.filter((item) => {

return typeof item === "number";

});

// console.log(newArr1);

// 3.去除字符串中除数字外的字符

const str = " sthh dafj @@ 125 )中文022";

const newStr = str.replace(/\D/g, "");

// console.log(newStr);

// 4.反转字符串或者单词

const sentence = "handsome!";

const reverseSent = sentence.split("").reverse().join("");

console.log(reverseSent);

// 5.将十进制转换成二进制或十六进制

function transform(num, target) {

return num.toString(target);

}

console.log(transform(17, 2));

//6.合并多个对象

const obj1 = { name: "obj1" };

const obj2 = { name1: "obj2" };

const obj3 = { ...obj1, ...obj2 };

console.log(obj3);

// 7.===和==的区别

/**

* == 浅比较,可以做类型转换

* ===严格比较,无类型转换

* 假值 0 、‘’、undefined、nul、false、NaN、

*/

// 8.解构赋值

// 9.交换变量的值

let name = "name";

let sex = "sex";

[sex, name] = [name, sex];

console.log(sex, name);

// 10.判断回文字符串(正着反着都是一样的字符串)

const palindrome = "aa11aa6";

function isPalindrome(str) {

const reverce = str.split("").reverse().join("");

return reverce === str;

}

console.log(isPalindrome(palindrome));

// 10.从数组中随机抽取一个值

const randomArr = [1, 5, 0];

function getRandom(arr) {

const random = Math.floor(Math.random() * arr.length);

return arr[random];

}

console.log(getRandom(randomArr));

//11.冻结对象

const obj4 = {};

Object.freeze(obj4);

// obj4.name = "yh";

console.log(obj4);

// 12.删除数组重复元素

const arr2 = [1, 2, 1, 1, "name"];

const arr3 = [...new Set(arr2)];

console.log(arr3);

// 13.保留指定位数小数

(3.25252525).toFixed(2);

// 14.清空数组

let arr4 = [1, 3, 5, 7, 9];

arr4.fill("");

// or arr4.length=0

console.log(arr4);

//15.从rgb转换为hex

function 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(0, 0, 0));

// 16.从数组中获取最大值和最小值

let arr5 = [1, 3, 500, -7, 9, 0, false, null];

const maxNum = Math.max(...arr5);

const minNum = Math.min(...arr5);

console.log(maxNum, minNum);

//17.空值合并运算符 ??

//当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数。

//18.过滤数组中值为false的值

const arr6 = arr5.filter((item) => {

return Boolean(item) || item === 0;

});

console.log(arr6);