对象

英文名称:Object。

类似于C++中的map,由key:value对构成。

value可以是变量、数组、对象、函数等。
函数定义中的this用来引用该函数的“拥有者”。
例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
let person = {
name: "John",
age: 30,
money: 100,
friends: ["Bob", 'Alice'],
clothes: {
color: "red",
size: "XL",
},
add_money: function (x) {
this.money += x;
}
}

function main() {
console.log(person);
console.log(person.name);
console.log(person.clothes);
person.add_money(50);

}

export { main };

对象属性与函数的调用方式:

person.name、person.add_money() person["name"]、person["add_money"]()

数组

数组是一种特殊的对象。

类似于C++中的数组,但是数组中的元素类型可以不同。

数组中的元素可以是变量、数组、对象、函数。
例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
let a = [1, 2, 'a', "lzh", [3, 4, 5]];

let b = [
1,
"lzh",
[3, 4, 5],
function () {
console.log("hello world");
},
{
name: "lzh",
age: 20,
}
]

function main() {
console.log(b[2]);
b[3]();
console.log(b[4].name);
b[10] = function () {
console.log("hahahaha");
}
b[10]();
console.log(b);
}

export { main };

访问数组中的元素
通过下标。

例如:

a[0] = 1; // 访问数组a[]的第0个元素
console.log(a[0]);
数组的常用属性和函数
属性length:返回数组长度。注意length是属性,不是函数,因此调用的时候不要加()
函数push():向数组末尾添加元素
函数pop():删除数组末尾的元素
函数splice(a, b):删除从a开始的b个元素
函数sort():将整个数组从小到大排序
自定义比较函数:array.sort(cmp),函数cmp输入两个需要比较的元素,返回一个实数,负数表示第一个参数小于第二个参数,0表示相等,正数表示大于。

函数

函数是用对象来实现的。

函数也C++中的函数类似。

定义方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function add(a, b) {
return a + b;
}

let a = function (a, b) {
return a + b;
}

let b = (a, b) => {
return a + b;
}

function main() {
console.log(add(1, 2));
console.log(a(1, 2));
console.log(b(1, 2));
}

export { main };

返回值
如果未定义返回值,则返回undefined。