持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第29天,点击查看活动详情
内置对象是指在JavaScript中,存在许多已经定义好的对象,这些对象共同组成了JavaScript的内置对象。
三、Array对象
常用的有三个循环/迭代方法,forEach、filter、map,这三个方法都不会修改原数组。
- forEach(fn):对数组的每个元素执行一次 fn 函数,没有返回值(简单循环);
- filter(fn):创建一个新数组,将array中符合 fn 的所有元素存储到该新数组中返回(循环并过滤功能);
- map(fn):创建一个新数组,对array中的每个元素执行一次fn函数, 所得到的结果作为新数组的元素(循环并可改变数值并返回新结果)。
以上三个方法的 fn 函数都有三个参数:
item:当前循环的元素;
index:当前循环的元素索引;
array:当前正在循环的数组。
举例:
定义一个数组[80, 22, 31, 15, 99];
1、求数组中的最大值;
var arr = [80, 22, 31, 15, 99];
var max = arr[0];
arr.forEach((item, index, array) => {
if(max < item) {
max = item;
}
});
console.log(max); // 99
2、求数值中大于或等于25的所有数值;
var arr = [80, 22, 31, 15, 99];
var newArr1 = arr.filter((item, index, array) => {
return item >= 25; // 只要 return 的值是true,就会自动将当前的 item 返回
});
console.log(newArr1); // [80, 31, 99]
3、给所有小于或等于32的数值加上66并返回。
var newArr2 = arr.map((item, index, array) => {
if(item <= 32) {
return item + 66
} else{
return item
}
});
console.log(newArr2); // [80, 88, 97, 81, 99]
四、String对象
字符串类型相对于其他基本类型有一个特点,就是不可变特性。之所以这么说,是因为当定义一个String的字符串变量时,变量指向是在内存中开辟出来的一个地址,当需求需要修改String变量时是重新指向新的地址,而原来的内存仍在。因此不推荐大量使用拼接赋值字符串的场景出现。
String对象常用方法有:
- charAt(i):返回指定位置处字符;
var str1 = 'Hello world!';
console.log(str1.charAt(2)); // l
- charCodeAt(i):返回指定位置处字符的ASCII码;
var str2 = 'Hello world!';
console.log(str2.charCodeAt(2)); // 108
- concat(str):拼接字符串,等效于
+,+更常用;
var str3 = 'Hello ';
var str4 = 'world!';
console.log(str3.concat(str4)); // 'Hello world!'
- slice(start, end):从start位置开始,截取到end位置,end取不到;
var str5 = 'Hello world!';
console.log(str5.slice(2, 5)); // 'llo'
- substring(start, end):从start位置开始,截取到end位置,end取不到;
var str6 = 'Hello world!';
console.log(str5.substring(2, 5)); // 'llo'
- substr(start, length):从start位置开始,截取length个字符;
var str7 = 'Hello world!';
console.log(str7.substr(2, 5)); // 'llo w'
- indexOf(str):返回指定内容在原字符串中的位置,只找到第一个匹配的返回所在索引,否则返回-1;
var str8 = 'Hello world!';
console.log(str8.indexOf('l')); // 2
- lastIndexOf(str):从后往前找,只找第一个匹配的返回索引,否则返回-1;
var str9 = 'Hello world!';
console.log(str9.lastIndexOf('l')); // 9
- trim():去除空白,但是只能去除字符串前后的空白。
var str10 = ' Hello world! Hello world! ';
console.log(str10.trim()); // 'Hello world! Hello world!'