JavaScript内置对象(字符串)

JavaScript内置对象(字符串)

基本包装类型

  • 为了方便操作基本数据类型,JS还提供了三个特殊的引用类型:String、Number和Boolean;
//基本包装类型
//为了方便操作基本数据类型,JS还提供了三个特殊的引用类型:String、Number和Boolean
var str = 'John'
console.log(str.length)
//对象才有属性和方法,复杂数据类型才有属性和方法
//简单数据类型为什么会有lenght属性呢?
//基本包装类型:就是把简单数据类型包装成为了复杂数据类型

//(1)把简单数据类型包装为复杂数据类型
var temp = new String('John')
// (2)把临时变量的值给str
str = temp
// (3)销毁这个临时变量
temp = null

5. 字符串

字符串的不可变

  • 指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存开辟了新的内存空间;

‼️‼️面试题⚠️⚠️

//求o出现的次数
var str = 'vjsonkolakcomsnfooo'
var index = str.indexOf('o')
var num = 0
// console.log(index)
while(index !== -1){
    console.log(index);
    num++;
    index = str.indexOf('o', index + 1);
}
console.log(num)

根据位置返回字符

方法名说明使用
charAt(index)返回指定位置的字符(index 字符串的素引1号)str.charAt(0)
charCodeAt(index)获取指定位置处字符的ASCI码 (index索引号)str.charCodeAt(0)
str(index)获取指定位置的字符html5, ie8+支持

//根据位置返回字符
var str = 'AZHelloWorld'
console.log(str.charAt(5))
//遍历字符
var arr = []
for(var i = 0 ; i < str.length ; i++){
    arr.push(str.charAt(i))
}
console.log(arr)

⚠️⚠️面试题‼️‼️

判断一个字符串,出现次数最多的字符,并统计其次数
//核心算法:利用charAt() 遍历这个字符串
//把每个字符都存储给对象,如果对象没有该属性,就为1,如果存在就+1
//遍历对象,即可得到最大值和该字符
var str = 'oscnksjfosmkdaaaaaodaaaanoamqoslpzoi'
var o = {}
for(var i = 0; i < str.length; i++){
    var chars = str.charAt(i)
    if(o[chars]){
        o[chars]++
    }else{
        o[chars] = 1
    }
}
console.log(o)
var ch = ''
var max1 = 0
for(var k in o){
    if(max1 < o[k]){
        max1 = o[k]
        ch = k
    }
}
console.log(`最多的字母是:${ch},${max1}`)

字符串操作方法

方法名说明
toUpperCase()转换大写
toLowerCase()转换小写
replace(oldstr,newstr)替换字符,只会替换第一个字符(常用)
split(‘分隔符’)字符串转换为数组
substr(start,end)end如果为空,则默认取完
str.indexOf(searchValue [, fromIndex])返回调用它的 String 对象中第一次出现的指定值的索引,从 fromIndex 处进行搜索,如果未找到该值,则返回 -1
concat(str1,str2,…)concat()方法用于连接两个或多个字符串,拼接字符串,等效于+,+更常用
substr(start, length)从start位置开始(索引1号),length 取的个数
slice(start,end)从start位置开始,截取到end位置,end取不到(他们俩都是索引号)
substring(string,end)从start位置开始,截取到end位置,end取不到,基本和slice相同,不接受负值
// 1. 替换字符replace('被替换的字符','替换的字符'),只会替换第一个字符
var str1 = 'andy'
console.log(str1.replace('y','a'))
//将字符串中o 全部替换为*
var str2 = 'nsmkomanjcomskcojfnov'
while(str2.indexOf('o') !== -1){
    str2 = str2.replace('o', '*')
}
console.log(str2)
// 2.字符串转换为数组 split('分隔符') ,数组转换为字符串 join('分隔符')
split()方法用于切分字符串,它可以将字符串切分为数组。在切分完毕之后,返回的是一个新数组。
var str3 = 'pink, yellow, red, black'
console.log(str3.split(','))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值