常用的字符串方法

69 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情

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

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)