javascript中string是不可变的原始类型,用单引号、双引号或反引号定义,底层为unicode码元序列,支持模板字面量;typeof恒为"string",转换推荐string(x)。
javascript 中 string 是七种原始类型之一,本质是不可变的文本序列,不是对象,也不是字符数组。
字符串是不可变的
一旦创建,字符串内容无法被修改。任何看似“改变”的操作(比如 s.toUpperCase()、s.replace()、s[0] = "H")都只会返回一个新字符串,原值保持不变。
let s = "hello"; s[0] = "H"; console.log(s); // 仍是 "hello"-
s.toUpperCase()返回"HELLO",但s本身没变 - 这种不可变性让字符串天然适合做键名、缓存或跨函数安全传递
三种定义方式,语义一致
单引号('abc')、双引号("abc")、反引号(`abc`)均可定义字符串,三者在基础用法上完全等价。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
- 单双引号不支持插值,也不自动换行
- 反引号支持模板字面量:
`Hello ${name}`和多行字符串 - 注意:反引号创建的仍是
string类型,不是新类型
底层是 Unicode 字符序列
字符串由 16 位 Unicode 码元组成,每个字符对应一个索引位置(从 0 开始),长度通过 .length 获取。
-
"a".length === 1,"?".length === 2(某些 emoji 占两个码元) - 没有单独的“字符类型”,单个字符就是长度为 1 的字符串
- 空字符串
""是合法且常用的 string 值
类型识别与转换行为明确
typeof "abc" 恒为 "string";它和包装对象 new String("abc") 有本质区别。
- 原始字符串无方法,但 JS 会临时包装成对象来调用方法(如
.split()) - 转字符串常用方式:
String(x)(安全,可处理 null/undefined)、x.toString()(null/undefined 会报错)、x + ""(隐式转换) -
"123"是 string,123是 number —— 类型严格区分,不会自动“类型提升”
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










