2023-10-10 前端笔记

59 阅读1分钟
  1. 调用 undefined 函数会怎样

会报错,obj.a 不是一个函数

const obj = {};

console.log(obj.a());

Uncaught TypeError: obj.a is not a function at index.js:3:17

如果不确定一个函数是否存在可以这样调用

foo?.();
  1. replace 替换是替换一个还是全替换

单个替换

const str = "banana";
console.log(str.replace("a", "x")); // 输出 bxnana

如果想要全替换可以使用正则

const str = "banana";
console.log(str.replace(/a/g, "x")); // 输出 bxnxnx

这是一个改变时间格式的 demo

const str = "2001/10/03";
console.log(str.replace(/\//g, "-")); // 输出 2001-10-03
  1. JSON.stringify 特殊情况
JSON.stringify({
    a: NaN,
    b() {},
    c: void 0,
}); // {"a":null}
  1. 使用正则捕获组拿到字符串内对应的数据
const reg = /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/;

const nums = reg.exec("rgb(255, 252, 255)").slice(1, 4); // ['255', '252', '255']

const _reg = /^(\d{4}-\d{2}-\d{2}).*$/;

const date = _reg.exec("2023-10-10T18:00:00")[1]; // 2023-10-10
  1. 10 进制转 16 进制
(255).toString(16); // ff
  1. 数组的可迭代对象
[1, 2, 3][Symbol.iterator]();