什么是字面量?
字面量(literal)指的是直接出现在JavaScript代码中的值,例如:
let num = 10; // 整数字面量
let str = 'hello world'; // 字符串字面量
let arr = [1, 2, 3]; // 数组字面量
let obj = { name: 'Lucy', age: 18 }; // 对象字面量
字面量的值是直接存储在变量中的,而不是引用存储在另一个地方。所以使用字面量创建变量的过程也叫做字面量表示法(literal notation)。
JS中怎么利用字面量创建对象?
对象字面量
对象字面量是一种创建对象的方式,可以直接在代码中定义对象的属性和方法,示例代码如下:
let person = {
name: 'Tom',
age: 20,
sayHello: function() {
console.log('Hello, my name is ' + this.name);
}
};
上面代码中,通过花括号定义了一个对象,对象中包含了三个属性:name、age和sayHello。其中sayHello属性的值是一个函数,用于输出对象的name属性值。创建对象的时候,属性和方法以键值对的形式表示,通过冒号分隔。
对象字面量可以方便地创建一个对象,可以在任何时候创建,也可以在函数内部创建。同时,可以给属性和方法初始值。
对象字面量的优点:
定义对象时非常省去代码,不用使用 new 关键字;
可以在任何时候创建对象,方便灵活;
可以直接在属性和方法中添加初始值;
可以直接使用简单的访问方法来访问对象的属性和方法。
数组字面量
数组字面量是一种创建数组的方式,可以直接在代码中定义数组的元素,示例代码如下:
let arr = [1, 2, 3, 4, 5];
上面代码中,通过方括号定义了一个数组,数组中包含了五个连续的整数元素。通过数组字面量创建的数组不需要 new 关键字,数组元素以逗号分隔。
数组字面量的优点:
与对象字面量类似,使用方便简单,不需要使用 new 关键字;
可以直接在数组中添加元素和初始值;
可以使用简单的访问方法来访问数组元素。
正则表达式字面量
正则表达式字面量是一种用于匹配字符串模式的方式,它直接出现在斜杠之间,示例代码如下:
let regExp = /hello/;
上面代码中,通过斜杠定义了一个正则表达式,用于匹配字符串中是否包含“hello”这个子串。正则表达式字面量不需要 new 关键字,正则表达式的匹配模式紧跟在斜杠之后。
正则表达式字面量的优点:
不需要使用 new 关键字;
可以直接在斜杠之间添加正则表达式模式;
方便快速使用,不需要使用额外的函数。
函数字面量
函数字面量是一种定义函数的方式,可以直接在代码中定义一个函数变量,示例代码如下:
let sayHello = function() {
console.log('Hello world!');
};
上面代码中,通过函数表达式定义了一个名为sayHello的函数变量,函数变量的值是一个匿名函数,用于输出“Hello world!”这个字符串。函数字面量的优点是方便灵活,可以在任何时候定义函数。
在函数表达式中,函数名是可选的。如果函数名没有被提供,则称函数为匿名函数。否则,函数将被命名,并且函数名将成为创建的函数对象的文本属性。
总结
字面量是 JavaScript 中一种方便快捷的表达方式,从代码的编写上讲增加了很多的可读性,同时也让代码更加易于编写。上述介绍了几种常用的字面量,分别是对象字面量、数组字面量、正则表达式字面量和函数字面量。