1. String对象

1.1. String是对原始字符串的包装对象。

1.2. 创建String对象的语法:

var myStr = new String(s);

1.3. 参数s是要存储在String对象中的字符串。

1.4. 当String()和运算符new一起作为构造函数使用时, 它返回一个新创建的String对象, 存放的是s的字符串表示。

2. String对象属性

3. String对象方法

4. 使用字面量创建字符串和String对象创建字符串

4.1. 使用字符串字面量创建字符串和String对象创建字符串

var str1 = new String('hello china'); // 使用String对象创建字符串
var str2 = 'hello china'; // 使用字符串字面量创建字符串

4.2. 使用字面量创建字符串和String对象创建字符串的不同

4.2.1. 使用字面量创建的字符串是原始值, 储存在栈中。

4.2.2. 使用String对象创建的字符串是对象(引用类型), 储存在堆中。

4.2.3. 字符串字面量和String对象创建字符串的内存结构:

4.2.4. 使用对象创建字符串比使用字符串字面量创建字符串复杂的多(就是因为String对象多执行了一个String()构造函数), 执行效率低, 因此我们通常使用字符串字面量创建字符串。

4.2.5. 使用==运算符判断使用字面量和String对象创建的相同值的字符串是否相等时, 结果是true, 因为字符串内容相同。

4.2.6. 使用===运算符判断使用字面量和String对象创建的相同值的字符串是否相等时, 结果是false, 因为字符串虽然内容相同, 但类型不同, 一个是字符串, 一个是对象。

5. 字符串原始值可以使用String对象的属性和方法

5.1. 字符串原始值, 比如"hello china", 无法拥有属性和方法, 因为它们不是对象。

5.2. 但是通过JavaScript, String对象的属性和方法也可用于原始字符串, 因为在执行属性和方法时JavaScript将原始字符串视为伪对象。

5.3. 需要注意的是, JavaScript的字符串是不可变的(immutable), String类定义的方法都不能改变字符串的内容。像toUpperCase()这样的方法, 返回的是全新的字符串, 而不是修改原始字符串。

6. String对象重写了Object对象的constructor: ƒ String()属性, 和toString()、valueOf()这两个方法。

7. toString()方法

7.1. toString()方法返回字符串。

7.2. 语法

stringObject.toString()

8. valueOf()方法

8.1. valueOf()方法可返回String对象的原始值。

8.2. 语法

stringObject.valueOf()

8.3. String对象的toString()方法和valueOf()方法是一样的。

9. 例子

9.1. 代码

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8" /><title>String对象</title></head><body><script type="text/javascript">var str1 = new String('hello china');var str2 = 'hello china';document.write('str1 = ' + str1 + '<br />');document.write('str2 = ' + str2 + '<br />');document.write('(str1 == str2) = ' + (str1 == str2) + '<br />');document.write('(str1 === str2) = ' + (str1 === str2) + '<br />');document.write('(str1.valueOf() === str2) = ' + (str1.valueOf() === str2) + '<br />');document.write('(typeof str1) = ' + (typeof str1) + ', (typeof str1.valueOf()) = ' + (typeof str1.valueOf()) + '<br />');document.write('(typeof str2) = ' + (typeof str2) + ', (typeof str2.valueOf()) = ' + (typeof str2.valueOf()) + '<br />');document.write('(str1.toString() === str2) = ' + (str1.toString() === str2) + '<br />');document.write('(typeof str1) = ' + (typeof str1) + ', (typeof str1.toString()) = ' + (typeof str1.toString()) + '<br />');document.write('(typeof str2) = ' + (typeof str2) + ', (typeof str2.toString()) = ' + (typeof str2.toString()) + '<br />');</script></body>
</html>

9.2. 效果图

048_String对象相关推荐

  1. java_B站_面试题

    Java面向对象有哪些特征,如何应用 ​ 面向对象编程是利用类和对象编程的一种思想.万物可归类,类是对于世界事物的高度抽象 ,不同的事物之间有不同的关系 ,一个类自身与外界的封装关系,一个父类和子类的 ...

  2. 史上最详细的23中设计模式解析,一个不落,理论搭配简单案例,更好理解哦

    目录 一.软件设计模式的产生背景 二.软件设计模式的概念与意义 1. 软件设计模式的概念 2. 学习设计模式的意义 三.23 种设计模式的分类和功能 1. 根据目的来分 2. 根据作用范围来分 3. ...

  3. 在kotlin companion object中读取Bean,注入Bean对象

    在kotlin companion object中读取Bean,注入Bean对象 在使用kotlin时,或多或少地会使用到一些公共组件,如 http. mongo. redis相关的组件.   使用组 ...

  4. IDEA自动生成对象所有set方法

    idea中有一款插件能够生成对象所有的set方法,GenerateAllSetter :下载地址 步骤1:将下载好的压缩包放在自己记得的文件夹中,在idea中进行导入 步骤2:在本地选中刚才的压缩包, ...

  5. 基于Golang的对象序列化的程序包开发——myJsonMarshal

    基于Golang的对象序列化的程序包开发--myJsonMarshal[阅读时间:约10分钟] 一.对象序列化概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体程序设计及 ...

  6. java 捕获异常并存入数据库_java异常处理,报异常的话怎么处理对象值,并持久化到数据库中...

    展开全部 //没看到有人回e68a843231313335323631343130323136353331333365646233答你,我还没学到框架,不知道那个是不是可以很便捷操作你说的这样过程 / ...

  7. python程序如何执行死刑图片_如何判断对象已死

    已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...

  8. Go 学习笔记(64)— Go error.New 创建接口错误对象、fmt.Errorf 创建接口错误对象、errors.Is 和 errors.As

    1. error 接口定义 除用 panic 引发中断性错误外,还可返回 error 类型错误对象来表示函数调用状态.error 接口是 Go 原生内置的类型,它的定义如下: // $GOROOT/s ...

  9. OpenCV 笔记(06)— Mat 结构、像素值存储方法、创建 Mat 对象各种方法、Mat 对象的运算

    数字图像中的每个点都称为像素(对于图像元素),并且每个像素可以存储一个或多个值,这取决于它是否是仅存储一个值的黑白图像(也称为二进制图像,比如只存储0或1),还是存储两个值的灰度图像,或者是存储三个值 ...

最新文章

  1. 常用MySQL函数存储过程_解析MySQL存储过程、常用函数代码
  2. 喝凉水都长胖?吸收比别人好?肠道菌群真是个任性的小妖精
  3. 约束理论学习随笔(2)---DBR系统
  4. 一体机怎么修复音频服务器,教学触摸一体机没有声音怎么办?
  5. MATLAB R2022 最新中英文版 数据处理
  6. 清华姚班毕业生不配自信?张昆玮在豆瓣征女友,却被网友群嘲......
  7. webgis从基础到开发实践_开源WebGIS教程系列——11.1 GISLite 的开发背景与设计
  8. 熊猫删除重复行– drop_duplicates()函数
  9. 2 HTTP和HTTPS
  10. javascript常用校验器
  11. c++ linux pthread函数
  12. 金融危机对中国IT产业四大深层影响
  13. 武汉科技大学计算机学院研究生复试,2019年武汉科技大学硕士研究生复试及录取工作方案...
  14. channel is not opened.
  15. 百度女程序员半夜打车被司机嘲讽:加班到一点,收入不如我,图啥
  16. python怎么把照片转成卡通_python用OpenCV转卡通照片报错,好像是pyrdown的使用有问题?...
  17. 【转】CAN总线与CANOPEN协议入门
  18. 盈余贝分享网赚项目的思维和观念
  19. 为指针分配和释放空间
  20. 网络爬虫(一):爬虫基础原理

热门文章

  1. Test2 unit2
  2. MySQL服务器的构建与维护
  3. Oracle中group by用法
  4. ASP.NET 5 RC 1:UrlRouting 设置(不包含MVC6的UrlRouting设置)
  5. centos 6.5网卡固定IP重启出错
  6. WEB程序员需要掌握的十大MySQL优化技巧
  7. Java异常学习心得
  8. 05-01-部署 WSUS on Windows 2019 Core
  9. IT常说的协议指的是什么?—Vecloud微云
  10. 什么是SDN以及SD-WAN的发展方向?—Vecloud微云