JS常见问题及常用方法

解构赋值:

1
2
3
const { a, b, c, d, e } = obj;
// ES6的解构赋值虽然好用。但是要注意解构的对象不能为undefined、null。否则会报错,故要给被解构的对象一个默认值。
const { a, b, c, d, e } = obj || {};

合并数组:

1
2
3
4
5
6
7
8
9
10
11
12
13
// 数组合并
const a = [1, 2, 3];
const b = [1, 5, 6];
const c = [...new Set([...a, ...b])]; //[1,2,3,5,6]
// 对象合并
const obj1 = {
a: 1,
};
const obj2 = {
b: 1,
};
const obj = { ...obj1, ...obj2 }; //{a:1,b:1}

includes:

1
2
3
4
5
6
7
8
const condition = [1, 2, 3, 4];
if (condition.includes(type)) {
//...
}
console.log([1, 2, 3].includes(2) === true);
console.log([1, 2, 3].includes(4) === false);
console.log([1, 2, NaN].includes(NaN) === true);

indexOf:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 查找一个元素是否在数组中,并返回索引
string.indexOf(searchValue[, fromIndex])
其中,string是要搜索的字符串,searchValue是要查找的子字符串,fromIndex是可选参数,表示搜索的起始位置。

例如,以下代码将返回字符串"hello"中子字符串"lo"的索引位置:

var str = "hello";
var pos = str.indexOf("lo");
console.log(pos); // 输出 3
如果未找到子字符串,则返回-1

var str = "hello";
var pos = str.indexOf("world");
console.log(pos); // 输出 -1
另外,如果指定了fromIndex参数,则从该位置开始查找子字符串。例如,以下代码将从索引位置2开始搜索字符串中的子字符串:

var str = "hello";
var pos = str.indexOf("l", 2);
console.log(pos); // 输出 2

filter 和 find

1
2
3
4
5
6
// find方法中找到符合条件的项,就不会继续遍历数组。
const arr = [1, 2, 3, 4, 5];
const result = arr.find((item) => {
return item === 3;
});

JS 常用代码段

随机获得一个布尔值

1
2
3
const randomBoolean = () => Math.random() >= 0.5;
console.log(randomBoolean());

判断今天是否为工作日

1
2
3
4
5
6
const isWeekday = (date) => date.getDay() % 6 !== 0;
console.log(isWeekday(new Date(2021, 0, 11)));
// Result: true (Monday)
console.log(isWeekday(new Date(2021, 0, 10)));
// Result: false (Sunday)

从日期中获取时间

1
2
3
4
5
6
7
通过使用 toTimeString() 方法,在正确的位置对字符串进行切片,我们可以从提供的日期中获取时间或者当前时间。
const timeFromDate = (date) => date.toTimeString().slice(0, 8);
console.log(timeFromDate(new Date(2021, 0, 10, 17, 30, 0)));
// Result: "17:30:00"
console.log(timeFromDate(new Date()));
// Result: will log the current time

滚动到页面底部

1
2
3
4
export const scrollToBottom = () => {
window.scrollTo(0, document.documentElement.clientHeight);
};

滚动到页面顶部

1
2
3
4
const goToTop = () => window.scrollTo(0, 0);
goToTop();
// Result: will scroll the browser to the top of the page


JS常见问题及常用方法
http://example.com/2023/02/10/JS常见问题及常用方法/
作者
dinghw
发布于
2023年2月10日
许可协议