前面两章我们阐述了JS内置对象的Date()日期对象、Array()数组对象、Math()对象等相关操作
本章是完结章,我们阐述一些比较散的常用内置对象
目录
一.JS自动包装
1.String()
JS会自动将简单数据类型包装为复杂数据类型
我们来看一个例子:
我们都知道简单数据类型是不能使用length等值的
const str = '小蜗'
console.log(str)
//2
可是为什么我们声明了一个简单的变量,却可以打印出这个值的长度?
其实就是因为JS的自动包装,我们来进一步了解一下底层的运行原理:
//生成临时变量,包装为复杂数据类型
const temp = new String('小蜗')
//赋值给我们声明的变量
str = temp
//销毁临时变量
temp = null
JS会自动的去执行这些步骤,把简单数据类型包装为复杂数据类型,使其可以使用复杂数据类型的一些属性,JS在自动实现转换的时候,就用到了String()这个属于构造函数的内置对象
2.了解字符串不可变性
字符串拥有不可变性,当我们var一个变量赋值为2的时候,此时输出变量值为2
如果我们将这个变量的值改变为3,此时输出的变量值为3
那么2去了哪里?是被销毁了吗,还是说它还在
其实2还是存在的,因为我们给2开辟了存放它的空间,改变为3的时候,只是给3又开辟了一块空间,让变量指向3的地址
二.字符相关操作
1.根据字符返回其位置
例如我们想要获取到这么一长串字符中"进"字所在的位置:
const str = '你好朋友-我很热爱前端-我们一起进步-你愿意和我一起学习吗'
//str.indexOf('要查找的字符',[起始位置])
console.log(str.indexOf('进'))
console.log(str.indexOf('进',6))
我们发现这个方法好像和查找数组索引(从前查找)的方法一样
那我们想到了一个好点子,我们可不可以使用lastindexOf呢?
好吧,不可以使用,查找字符串索引我们使用indexOf()方法就好
2.根据位置返回字符
根据位置返回字符可以选择的方法就多了,不过功能不一:
charAt(index) 返回指定位置处的字符
charCodeAt(index) 返回指定位置处的字符所对应的ASCII码
变量[index] 返回指定位置处字符(有兼容问题)
tips:键盘每一个键都对应着一个数字,这个数字就叫ASCII码,用来判断用户按下了哪一个键(我们在之后的DOM键盘事件会进行详细阐述)
const str = '你好朋友-我很热爱前端-我们一起进步-你愿意和我一起学习吗'
console.log(str[7])
//热
3.重点-字符串常用操作
1.concat字符串拼接
concat('字符串1','字符串2')
const str = '你好'
console.log(str.concat('JS'))
2.substr字符串截取
substr('截取的起始位置','截取几个字符')
const str = '你好JS'
console.log(str.subatr(0,2))
3.replace字符串替换
replace('被替换的字符串','替换为的字符串')
const str = '这是一段不好的言语,我们想要屏蔽掉它'
console.log(str.replace('这是一段不好的言语,我们想要屏蔽掉它','***'))
4.字符串转数组
split('分隔符')
//分隔符用来做分隔数组的标识
const str = '你好|你能|分隔|我吗'
console.log(str.split('|'))
这让我们想起了使用join()方法来将数组转换为字符串
5.大小写的转换
//转换大写
const str = 'hello js-i like js'
console.log(str.toUpperCase())
//转换小写
const str2 = 'HELLO JS-I LIKE JS'
console.log(str2.toLowerCase())