JS的对象、数组、函数

对象

英文名称:Object

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

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

例如:

1
2
3
4
5
6
7
8
let person = {
name: "yxc",
age: 18,
money: 0,
add_money: function (x) {
this.money += x;
},
};

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

  • person.nameperson.add_money()
  • person["name"]person["add_money"]()

数组

数组是一种特殊的对象。

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

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

例如:

1
2
3
4
5
6
7
8
9
10
11
let a = [1, 2, "a", "yxc"];
let b = [
1, // 变量
"yxc", // 变量
["a", "b", 3], // 数组
function () {
// 函数
console.log("Hello World");
},
{ name: "yxc", age: 18 }, // 对象
];

访问数组中的元素

通过下标。

例如:

1
2
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
function add(a, b) {
return a + b;
}

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

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

返回值

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