048_String对象
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对象相关推荐
- java_B站_面试题
Java面向对象有哪些特征,如何应用 面向对象编程是利用类和对象编程的一种思想.万物可归类,类是对于世界事物的高度抽象 ,不同的事物之间有不同的关系 ,一个类自身与外界的封装关系,一个父类和子类的 ...
- 史上最详细的23中设计模式解析,一个不落,理论搭配简单案例,更好理解哦
目录 一.软件设计模式的产生背景 二.软件设计模式的概念与意义 1. 软件设计模式的概念 2. 学习设计模式的意义 三.23 种设计模式的分类和功能 1. 根据目的来分 2. 根据作用范围来分 3. ...
- 在kotlin companion object中读取Bean,注入Bean对象
在kotlin companion object中读取Bean,注入Bean对象 在使用kotlin时,或多或少地会使用到一些公共组件,如 http. mongo. redis相关的组件. 使用组 ...
- IDEA自动生成对象所有set方法
idea中有一款插件能够生成对象所有的set方法,GenerateAllSetter :下载地址 步骤1:将下载好的压缩包放在自己记得的文件夹中,在idea中进行导入 步骤2:在本地选中刚才的压缩包, ...
- 基于Golang的对象序列化的程序包开发——myJsonMarshal
基于Golang的对象序列化的程序包开发--myJsonMarshal[阅读时间:约10分钟] 一.对象序列化概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体程序设计及 ...
- java 捕获异常并存入数据库_java异常处理,报异常的话怎么处理对象值,并持久化到数据库中...
展开全部 //没看到有人回e68a843231313335323631343130323136353331333365646233答你,我还没学到框架,不知道那个是不是可以很便捷操作你说的这样过程 / ...
- python程序如何执行死刑图片_如何判断对象已死
已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...
- Go 学习笔记(64)— Go error.New 创建接口错误对象、fmt.Errorf 创建接口错误对象、errors.Is 和 errors.As
1. error 接口定义 除用 panic 引发中断性错误外,还可返回 error 类型错误对象来表示函数调用状态.error 接口是 Go 原生内置的类型,它的定义如下: // $GOROOT/s ...
- OpenCV 笔记(06)— Mat 结构、像素值存储方法、创建 Mat 对象各种方法、Mat 对象的运算
数字图像中的每个点都称为像素(对于图像元素),并且每个像素可以存储一个或多个值,这取决于它是否是仅存储一个值的黑白图像(也称为二进制图像,比如只存储0或1),还是存储两个值的灰度图像,或者是存储三个值 ...
最新文章
- 常用MySQL函数存储过程_解析MySQL存储过程、常用函数代码
- 喝凉水都长胖?吸收比别人好?肠道菌群真是个任性的小妖精
- 约束理论学习随笔(2)---DBR系统
- 一体机怎么修复音频服务器,教学触摸一体机没有声音怎么办?
- MATLAB R2022 最新中英文版 数据处理
- 清华姚班毕业生不配自信?张昆玮在豆瓣征女友,却被网友群嘲......
- webgis从基础到开发实践_开源WebGIS教程系列——11.1 GISLite 的开发背景与设计
- 熊猫删除重复行– drop_duplicates()函数
- 2 HTTP和HTTPS
- javascript常用校验器
- c++ linux pthread函数
- 金融危机对中国IT产业四大深层影响
- 武汉科技大学计算机学院研究生复试,2019年武汉科技大学硕士研究生复试及录取工作方案...
- channel is not opened.
- 百度女程序员半夜打车被司机嘲讽:加班到一点,收入不如我,图啥
- python怎么把照片转成卡通_python用OpenCV转卡通照片报错,好像是pyrdown的使用有问题?...
- 【转】CAN总线与CANOPEN协议入门
- 盈余贝分享网赚项目的思维和观念
- 为指针分配和释放空间
- 网络爬虫(一):爬虫基础原理