JavaScript中字符串、列表、对象常用方法(1)

const newStr = str.replaceAll(“Hello”, “Hi”); // “Hi, world! Hi, everyone!”


##### 2.3 substring / slice / substr


* substring(startIndex, endIndex) 方法返回字符串中两个指定的下标之间的字符。子字符串包括 startIndex 的字符,不包括 endIndex 的字符,并且两个下标值不能为负数。

 默认情况下,startIndex 小于 endIndex,否则 substring 会交换参数位置,也就是说 substring(5, 0) 相当于 substring(0, 5)。



const newStr = str.substring(0, 5); // ‘Hello’


* slice(startIndex, endIndex) 方法也用于提取两个下标之间的字符。区别在于,两个下标值都可以为负数,负数表示从尾部开始截取。

 默认情况下,startIndex 小于 endIndex,slice(5) 相当于 slice(0, 5),slice(-6) 相当于 slice(-6, 0)。如果相反,会返回空字符。



const newStr = str.slice(-6, -1); // ‘world’


* substr(startIndex, n) 方法用于从起始位置开始提取指定数量的字符。



const newStr = str.substr(6, 5); // ‘world’


##### 2.4 split


用于将一个字符串分割成字符串数组。



const ss = str.split(’ '); // [‘Hello’, ‘world!’]


### 二. Array


`const fruits = [ "Banana", "Orange", "Apple", "Mango"];`


#### 1. 查询


##### 1.1 isArray


用于判断一个对象是否为数组。



Array.isArray(fruits); //true


##### 1.2 includes


用于判断列表中是否有某个指定的值。



fruits.includes(‘Apple’); // true


##### 1.3 indexOf


返回数组中某个指定元素的位置,如果没找到指定元素则返回 -1



const index = fruits.indexOf(‘Apple’); // 2


#### 2. 编辑


##### 2.1 concat


用于拼接两个或多个数组,返回新数组



const a = [“Banana”, “Orange”, “Apple”];
const b = [“Lemon”,“Pineapple”];
const c = a.concat(b); // [“Banana”, “Orange”, “Apple”, “Lemon”,“Pineapple”]


##### 2.2 push / unshift


push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。  
 unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。



fruits.unshift(“Lemon”,“Pineapple”); // 6

// fruits = [“Lemon”,“Pineapple”, “Banana”, “Orange”, “Apple”, “Mango”]


##### 2.3 pop / shift


pop() 方法删除数组的最后一个元素并返回。  
 shift() 方法删除数组的第一个元素并返回。



fruits.pop(); // Mango

// fruits = [ “Banana”, “Orange”, “Apple”]


**注意**, push / unshift / pop / shift 这几种方法都会**改变原数组**。


##### 2.4 slice


slice(start, end) 返回从原有数组中提取出两个下标之间的元素,返回新数组。包含 start 位置元素,不包含 end 位置元素。



const newFruits = fruits.slice(1, 3); // [“Orange”, “Apple”]


##### 2.5 join


用于将数组中的元素通过指定的分割符转换成字符串。



const str = fruits.join(‘-’); // ‘Banana-Orange-Apple-Mango’


#### 3. 循环


`const arr = [1, 2, 3, 4, 6];`


##### 3.1 forEach


forEach 方法用于遍历数组的每个元素,并执行提供的函数。



arr.forEach((item, index, arr) => { // item:当前元素, index: 当前元素的索引, arr: 列表对象
if (item === 3) return; // 跳过3
console.log(item)
})


forEach 方法不改变原数组,不能中断或跳出循环(没有 break 或 continue),可以使用 return 语句来实现 continue 关键字的效果。


##### 3.2 map


map 方法返回一个新数组,新数组中的元素是原始数组中每个元素调用函数处理后的返回值。



const newArr = arr.map((item, index, arr) => {
return item * 2;
}) // [2, 4, 6, 8, 10]


##### 3.3 filter


filter 方法创建一个新数组,新数组中的元素是原数组中符合条件的元素。



const newArr = arr.filter(item => item > 2); // [3, 4, 5]


##### 3.4 some / every


这两个方法用于测试数组中的某些或所有元素是否满足特定条件。  
 some:只要有一个元素满足条件,就返回true。  
 every:所有元素都必须满足条件,才返回true。



const hasEven = arr.some(item => item % 2 === 0); // true

const areAllEven = arr.every(item => item % 2 === 0); // false


##### 3.5 reduce


reduce 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。  
 `array.reduce(function(total, currentValue, currentIndex, arr), initialValue)`


initialValue:可选,传递给函数的初始值



// 计算数组元素的总和
const arr = [1, 2, 3, 4, 6];
const sum = arr.reduce((total, item) => total + item, 0);

// 将对象数组转换为对象
const users = [
{ id: 1, name: ‘Alice’ },
{ id: 2, name: ‘Bob’ },
{ id: 3, name: ‘Charlie’ }
];

const userById = users.reduce((userObj, item) => {
userObj[item.id] = item.name;
return userObj;
}, {});
// {‘1’: ‘Alice’, ‘2’: ‘Bob’, ‘3’: ‘Charlie’ }


### 三. Object


#### 1. 查询


##### 1.1 hasOwnProperty


hasOwnProperty() 用于检查对象自身属性(实例)中是否含有某个属性,无法找到原型上的属性。


in 操作符也可以用于检查对象中是否还有某个属性,不管是在实例中还是原型中。


**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/54b00b50dbd1d4d84b3d25284b446923.jpeg)
![img](https://img-blog.csdnimg.cn/img_convert/999085381230d930a32c0ebb72739486.png)
![img](https://img-blog.csdnimg.cn/img_convert/f72c7255e84e78e245e411bae46275fb.png)
![img](https://img-blog.csdnimg.cn/img_convert/3264df7fadb13acb551d47cccbe0258d.png)
![img](https://img-blog.csdnimg.cn/img_convert/92bbc054f05fb210ceb3f348f7141ec7.png)
![img](https://img-blog.csdnimg.cn/img_convert/6be7551148da3265cd642a1866f876ce.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)**
![img](https://img-blog.csdnimg.cn/img_convert/7e951b6cef2637fa95dea57ef691e0db.png)



### 紧跟潮流



大前端和全栈是以后前端的一个趋势,懂后端的前端,懂各端的前端更加具有竞争力,以后可以往这个方向靠拢。

这边整理了一个对标“阿里 50W”年薪企业高级前端工程师成长路线,由于图片太大仅展示一小部分


![](https://img-blog.csdnimg.cn/img_convert/8f4634e85dd904c95364c9d62e0e9eff.png)

**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
![img](https://img-blog.csdnimg.cn/img_convert/1e6baa0f9aaeef55063dde91bfeafdd7.png)

,懂各端的前端更加具有竞争力,以后可以往这个方向靠拢。

这边整理了一个对标“阿里 50W”年薪企业高级前端工程师成长路线,由于图片太大仅展示一小部分


![](https://img-blog.csdnimg.cn/img_convert/8f4634e85dd904c95364c9d62e0e9eff.png)

**一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
[外链图片转存中...(img-A9pbf9NX-1712832544597)]

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值