JS
有一个特殊点:typeof null
结果是object
const str = '前端巅峰Peter老师牛逼'
str.xxoo = '你关注了吗?'
console.log(str.xxoo, 'xxoo')
undefined
const str = '前端巅峰Peter老师牛逼'
console.log(str.substring(1), 'xxoo')
端巅峰Peter老师牛逼
字符串
啊! const str = new Object('前端巅峰Peter老师牛逼')
console.log(typeof str, 'str')
obect
new Object
创建的字符串,竟然typeof
结果是object
,那么我想,会不会是以某种情况访问字符串时,会自动转换成这样结果呢?const str = '特皮牛逼'
,然后再去调用它的方法时,会有以下几个步骤:
const str = '特皮牛逼'
str.substring(1)
str
这个字符串,会有接下来几个步骤
substring
方法JS
里面的字符串一旦创建,他们的值就不能改变。要改变某个变量的保存的的字符串,首先要销毁原来的字符串,然后再用另外一个包含新值的字符串填充该变量原始代码:
const str = 'Peter老师666'
str.substring(1)
真正内部执行的是:
let str = new String('Peter老师666')
let str1 = str.substring(1)
str = null
重点:
JS
里面的字符串一旦创建,他们的值就不能改变。要改变某个变量的保存的的字符串,首先要销毁原来的字符串,然后再用另外一个包含新值的字符串填充该变量
const str = '前端巅峰'
str.xxoo = 'xxoo'
str.xxoo
str.xxoo = 'xxoo'
时,首先会创建一个实例,给这个实例上设置xxoo
属性的值为:xxoo
str
的时候,并没有这个属性这就叫原始值包装类型,它的声明周期只是这一行访问它的代码执行完就销毁了。这是它与引用类型的区别,我们通过new String()创建的实例就是一个引用类型,所以它是一个
object
.
const str = new String('前端巅峰Peter老师牛逼')
console.log(str, 'str')
typeof str
得到的结果是:object