js 字面量

147 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第38天,点击查看活动详情

前段时间遇到一个面试题,说什么的字面量,突然就觉得很陌生,所以就简单翻阅整理记录下字面量的学习。

字面量

JavaScript 高级语言编程中新增一个术语“字面量”。字符串字面量,数组字面量,对象字面量,函数字面量

在MDN 上对字面量的解释: JavaScript Literals are constant values that can be assigned to the variables that are called literals or constants.

所以,字面量其实就是指变量的常数值。字面上所看到的值。

在JS中,以特定符号或格式规定的,创建指定类型变量的,不能被修改的便捷表达式。 因为是表达式,字面量都有返回值。 字面量是方便程序员以简单的句式,创建对象或变量的语法糖,但有时候以字面量创建的“对象”和以标准方法创建的对象的行为并不完全相同。

对象

在MDN中对象字面量的解释是:Object literals are collection zero or more key-value pairs of a comma-separated list, which are enclosed by a pair of curly braces ‘ { } ‘.

对象字面量,就是空集合,或被括号包含,且其中含有键-值对的逗号分隔列表

var person = {};

var person = {
    name: "jasen",
    age: "14"
}

person对象的字面量直接是根据对象值定义出来的 person 对象,如果使用var person = new Object() ,则是由Object 定义出来,只是一个引用。

可以这样理解字面量。字面量就是右边的值,没有任何其他的修饰。比如奔跑的兔子,字面量就是事实在说奔跑的兔子,而不是一只在奔跑的兔子。就是指实实在在的值。所以同理 ,数组字面量 等其他都是一样,就是默认值。

var ary = ["aaa","bbb","ccc"],其中 ["aaa","bbb","ccc"] 就是字面量。

null

空值字面量:var obj = null

null 就是字面量 其类型是 Null 类型,但是在 js 中使用 typeof null 会得到 object 值,这是 js 遗留的 bug 问题。 所以,不能使用typeof判断一个null对象的数据类型

所以,字面量其实就是默认值,但是对于 null 需要注意不能使用 typeof 进行判断数据类型。