文章插图
在JAVAScript中一切皆对象,就是将所有的数据都看成是对象 。于是,就有了字符串和字符串对象的问题 。首先看看创建字符串的两种写法:
var str1='hello itsource.cn';
var str2=new String('hello itsource.cn');
很多人对于这两种创建字符串的方式都感到很迷茫,不知道该写哪一种,也不知道有什么区别 。接下来把我研究的结果给大家整理出来 。
【JavaScript中的基本字符串与字符串对象的区别】第一,先看一下共同点
1. 两种方式都能成功创建字符串,也能够拿来使用或输出 。
文章插图
文章插图
2. 两种方式创建的结果还是相等的 。
文章插图
3. 两种方式创建的字符串都可以使用属性和方法
文章插图
文章插图
第二,看一下不同的地方
虽然两种方式都能创建出字符串,值也是相等的,并且都能够使用属性和方法 。但是也有一些不同的地方 。
1. 两种字符串的类型不相同
文章插图
文章插图
从两个图中可以看出,str1的类型是 string,即普通字符串 。而 str2的类型为object,是一个对象类型 。普通字符串是一个基本类型的数据,存储在内存的栈里面,而对象是一个引用类型的数据,存储在内存堆里面 。所以两种方式创建出的字符串数据类型不相同,内存的存储位置也不相同 。
之前看到的两个字符串相等使用的是值等于(==),而不是全等于(===),如果是全等于则两个字符串不相等,因为它们的类型不相同 。
要理解清楚为什么str2是对象类型,就必须了解JS的new关键词,这里不详细解释啦 。
2. 字符串对象可以使用自定义属性和方法
文章插图
运行结果:
文章插图
从结果可以看出,str1是基本类型的字符串,不能自定义属性和方法 。而 str2是一个字符串对象,可以使用自定义的属性和方法 。
JS中基本字符串和字符串对象的区别我就给大家写到这里了,只是说明一下主要的区别,以便于大家根据自己的情况使用,内部运行原理就不在这里详细写了 。
推荐阅读
- 2019年顶级JavaScript 框架
- 10句话看懂 JavaScript 正则表达式
- 前端开发中的一些js规范
- 老茶是时光流逝中的静默
- 茶中的自由
- 夜晚中的茶香
- 旅游规则的基本内容有哪些 旅游目的划分的类型
- 茶礼送对了吗 竟然还有七大基本原则
- 爱情中的茶香
- 茶是场邂逅 爱上茶杯中的小幸福