javascript字面量处理核心是自动类型识别与隐式转换:数字(42、3.14、0xff等)、字符串('',''、``)、布尔(true/false)、null、undefined、symbol及对象/数组/正则/函数字面量各有规范写法和陷阱。

JavaScript 中处理字面量,核心是理解每种数据类型对应的字面量写法、自动类型识别机制,以及常见隐式转换陷阱。不需要手动“声明类型”,JS 会根据字面量内容自动推断。
数字字面量:整数、浮点、科学计数与特殊值
直接写 42、3.14、1e5(即 100000)、0xff(十六进制)、0b1010(二进制)都会被识别为 number 类型。注意:0123 在非严格模式下会被当作八进制(已废弃,建议避免),NaN 和 Infinity 也是合法的 number 字面量。
- 用
typeof 42验证结果是"number" -
Number("123")可显式转数字,但+"123"更简洁(一元加号) - 避免用
parseInt("08")不带基数——它可能误判为八进制;应写parseInt("08", 10)
字符串字面量:单引号、双引号、模板字符串
用单引号 'hello' 或双引号 "world" 创建字符串,二者功能一致,区别仅在是否需转义内部引号。反引号 ` 支持模板字面量:`Hello ${name}`,其中 ${...} 内可放任意表达式。
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
- 空字符串
''是有效字符串,typeof ''返回"string" - 字符串数字如
"42"不是 number,参与算术运算时会隐式转成数字(如"42" - 1 === 41) - 想明确判断是否为字符串,用
typeof x === "string",别用x.constructor === String
布尔、null、undefined 和 Symbol 字面量
true 和 false 是唯二布尔字面量;null 表示“空值”,是独立原始类型;undefined 表示“未定义”,是变量声明未赋值时的默认值;Symbol() 每次调用生成唯一值,用于对象属性名防冲突。
-
typeof null返回"object"(历史 bug,但已是标准行为) -
typeof undefined返回"undefined",而未声明变量用typeof undeclared也不报错,同样返回"undefined" -
Symbol("a") === Symbol("a")为false,因为每个 Symbol 都是唯一的
对象、数组、函数和正则字面量:简洁即创建
花括号 {} 创建普通对象,方括号 [] 创建数组,/pattern/flags 创建正则表达式,function() {} 或 () => {} 是函数字面量(后者是箭头函数表达式)。它们都是引用类型,但语法上是字面量形式。
-
{ name: "Alice" }是对象字面量,等价于new Object({ name: "Alice" }),但更轻量 -
[1, 2, 3]是数组字面量;Array(3)创建的是含 3 个 empty slot 的稀疏数组,不是[undefined, undefined, undefined] -
/\d+/g是正则字面量;若需动态拼接,用new RegExp(patternStr, flags)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










