常用的字符串方法

举报
上善若水. 发表于 2022/10/30 00:33:23 2022/10/30
【摘要】 请说一下你常用的字符串方法(至少七个)trim(): 去首尾空格split(sep,limit):将字符串分割为字符数组,limit 为从头开始执行分割的最大数量indexOf(str):返回 str 在父串中第一次出现的位置,若没有则返回-1lastIndexOf(str):返回 str 在父串中最后一次出现的位置,若没有则返回-1substr(start,length):从字符索引 st...

请说一下你常用的字符串方法(至少七个)

trim(): 去首尾空格
split(sep,limit):将字符串分割为字符数组,limit 为从头开始执行分割的最大数量
indexOf(str):返回 str 在父串中第一次出现的位置,若没有则返回-1
lastIndexOf(str):返回 str 在父串中最后一次出现的位置,若没有则返回-1
substr(start,length):从字符索引 start 的位置开始,返回长度为 length 的子串
substring(from,to):返回字符索引在 from 和 to(不含)之间的子串
slice(start,end):返回字符索引在 start 和 end(不含)之间的子串
toLowerCase():将字符串转换为小写
toUpperCase():将字符串转换为大写
replace(str1,str2):str1 也可以为正则表达式,用 str2 替换 str1
concat(str1,str2,…):连接多个字符串,返回连接后的字符串的副本
match(regex):搜索字符串,并返回正则表达式的所有匹配
charAt(index):返回指定索引处的字符串
charCodeAt(index):返回指定索引处的字符的 Unicode 的值
fromCharCode():将 Unicode 值转换成实际的字符串
search(regex):基于正则表达式搜索字符串,并返回第一个匹配的位置
valueOf():返回原始字符串值
原型和原型链

原型:portoType这个属性就是函数的原型
原型链:1.所有对象都有原型,而原型本身就是对象,所以原型也有自己的原型对象,就形成原型链
如果对象本身没有属性,则就会去原型链上去找
Object原型对象的原型值为null
new操作符具体做了什么?

在内存创建一个新对象
把构造函数中this指向新建的对象
会在新对象上添加一个__proto__属性,指向函数的原型对象prototype
判断函数返回值,如果值是引用类型就直接返回值;否则返回this(创建的新对象)
说下什么是IIFE函数

IIFE(立即调用函数表达式)是一个在定义时就会立即执行的函数。
浅拷贝与深拷贝有何区别?如何实现?

浅拷贝:拷贝的是原对象的内存地址
深拷贝:在内存中把原对象复制一份
浅拷贝的实现方式有:
(1)直接变量赋值

    (2)Object.assign();但目标对象只有一层的时候,是深拷贝;

    (3)扩展运算符(...);目标对象只有一层的时候,是深拷贝;

深拷贝就是在拷贝数据的时候,将数据的所有引用结构都拷贝一份。

深拷贝的实现方式有:
(1)结合使用JSON.parse()和JSON.stringify()方法。

    (2)手写遍历递归赋值;

字符串截取方法substr、 substring、 slice三者的区别

substr(n,m):截取的是字符串中索引为n开始的,并且截取m位
substring(n,m):从索引为n的位置开始截取,截取到索引为m的位置但是不包含索引为m这一项
slice(n,m):和substring一样,但是他可以支持负数索引
函数柯里化

    概念:把一个接收多个参数的函数变成接收单一参数 并且返回能够接收新参数的函数;比如:

add(1)(2)(3)(4) = 10;

function add(num){

var sum=num;

var fn=function(v){

    sum+=v;

    return fn

};

fn.toString=function(){

    return sum

};

return fn

}

console.log(add(1)(2)(3)(4)) // 10
判断Array类型的几种方式0

1、[ ] instanceof Array

2、[ ].constructor === Array

3、Object.prototype.toString.call([]) === ‘[object Array]’

4、Array.isArray([])

this指向的各种情况都有什么?

全局作用域中的函数:非严格模式下其内部this指向window
对象内部的函数:其内部this指向对象本身:
构造函数:其内部this指向生成的实例:
由apply、call、bind改造的函数:其this指向第一个参数:
箭头函数:箭头函数没有自己的this,看其外层的是否有函数,如果有,外层函数的this就是内部箭头函数的this,如果没有,则this是window。(函数定义时的this,而不是调用时this)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。