JS 对象基础知识

131 阅读2分钟

这是我参与2022首次更文挑战的第7天,活动详情查看:2022首次更文挑战

hi 我是小十七_,今天是大年初七,之前整理了一些 JS 对象的比较基础的知识,在这里分享给大家。

声明一个对象

首先是如何声明一个对象,声明一个对象有两种方法:文字语法和构造函数语法,这两种方法生成出的对象是没有区别的

// 文字语法
var obj = {
	a: 2
};
// 构造函数语法
var obj = new Object();
obj.a = 2;

JS 数据类型

JS 中一共有 7 种数据类型,分为基础类型和引用类型:

基础类型:numberstringbooleannullundefinedsymbol

引用类型:object

基本数据类型都是不可变的

const a = 'abc';
a = 'bcd';  // Uncaught TypeError: Assignment to constant variable

const b = { a: 1 };
b.a = 2;
b = { b: 1 };  // Uncaught TypeError: Assignment to constant variable

内置对象

内置对象就是指 JS 中的一些内置函数,他们可以作为构造函数来使用,比如:

StringNumberBooleanObjectArrayFunctionDateRegExpError 可以生成对应子类型的对象

// 这种方式是字面量声明的方式
var str = 'aaa';
// 它本身是没有 String 的方法
// 所以如果需要用到这些方法,需要把它转化为 String 对象,引擎已经自动帮你做了这件事

numberboolean 也是和 string 一样的意思

nullundefined 没有构造形式,只有文字形式

内置函数中 Date 只有构造形式

内置函数 ObjectFunctionArrayRegExp 构造形式和文字形式都是对象类型,在需要加一些额外选项会用到构造函数形式

内置函数 Error 在抛出异常的时候会被自动创建

对象的属性名

对象的属性名一定是一个字符串类型,如果传入其他类型的值,也会被转化为字符串类型 如果对象属性的值是一个函数,对象拿到的也只是这个函数的引用,函数不能称作是对象的方法。

var obj = {
	aaa: function () {
		console.log('foo')
	}
}
var bar = obj.aaa;
bar();
// obj 的属性 aaa 和 变量 bar 持有对这个函数的引用

以上为 JS 对象基础知识的内容,欢迎点赞和评论