JavaScript —— 对象、数组、函数
对象[*]英文名称:Object。
[*]类似于C++中的map,python中的字典,由key:value对构成。
[*]value可以是变量、数组、对象、函数等。
[*]函数定义中的this用来引用该函数的“拥有者”。
例如:
test.js中的内容为:
let person = {// 定义一个对象person
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>name:'kitty',// 对象的元素可以是变量
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>age:18,
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>money:0,
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>friends:['Alice', 'Bob', 'Lucy'],// 对象的元素可以是数组
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>clothes:{// 对象的元素可以是对象
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body><body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>color:"pink",
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body><body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>price: 100,
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>},
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>add_money:function(x){// 对象的元素可以是函数
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body><body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>this.money += x;// this:返回拥有这个函数的对象,这里指person
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>}
}
function main(){
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(person);
}
export {
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>main
}test.html中的内容为:
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>
对象属性与函数的调用方式(访问对象的值的方式):
1. 点的方式,person.name、person.add_money()
2. 中括号的方式,person["name"]、person["add_money"]()
例如:
test.js中的内容为:
let person = {// 定义一个对象person<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>name:'kitty',// 对象的元素可以是变量<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>age:18,<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>money:0,<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>friends:['Alice', 'Bob', 'Lucy'],// 对象的元素可以是数组<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>clothes:{// 对象的元素可以是对象<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body><body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>color:'pink',<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body><body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>price: 100,<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>},<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>add_money:function(x){// 对象的元素可以是函数<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body><body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>this.money += x;// this:返回拥有这个函数的对象,这里指person<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>}}function main(){<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>// 1. 点的方式,类似于c++中的class类<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(person.name, person.age, person.clothes); // kitty 18 {color:'pink',price: 100}<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>// delete person.name;// 删除对象的属性<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body><body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(person.money);// 0<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>person.add_money(10);// 调用函数<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(person.money);// 10<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>// 2. 中括号的方式<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(person["money"]);// 10<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>person["add_money"](10);// 调用函数<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(person["money"]);// 20}export {<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>main}test.html中的内容为:
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>
数组
[*]数组是一种特殊的对象,用中括号[]表示。
[*]类似于C++中的数组,但是数组中的元素类型可以不同。
[*]数组中的元素可以是变量、数组、对象、函数。
例如:
test.js中的内容为:
let a = ];let b = [<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>1,// 变量<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>"kitty",// 变量<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>['a', 'b', 3],// 数组<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>function () {// 函数<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body><body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log("Hello World");<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>},<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>{ name: "kitty", age: 18 }// 对象];let c = [];// 定义一个空数组let d = {};// 定义一个空对象(没有任何成员的对象)let main = function() {<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(a);<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(b);<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(c);<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(d);}export {<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>main}test.html中的内容为:
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>
访问数组中的元素:
[*]通过下标,从0开始访问。
例如:
test.js中的内容为:
let a = ];let b = [<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>1,// 变量<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>"kitty",// 变量<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>['a', 'b', 3],// 数组<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>function () {// 函数<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body><body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log("Hello World");<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body><body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>return 0;// 如果不加这句话,执行函数后返回undefined<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>},<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>{ name: "kitty", age: 18 }// 对象];let main = function() {<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(b);// 访问数组b[]的第0个元素,返回 1<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(b);// 返回 b<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(b);// 返回函数的定义: ƒ () { console.log("Hello World");return 0; }<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(b());// 执行函数,返回 Hello World 0<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(b.name)// 返回对象的元素,返回 kitty<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body> // 或者 console.log(b['name']);<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>b = function() {// 给b的第0个元素重新赋值为函数<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body><body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log("哈哈哈");<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>}<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>b();// 执行函数b,返回 哈哈哈}export {<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>main}test.html中的内容为:
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>
数组的常用属性和函数:
[*]属性length:返回数组长度。注意length是属性,不是函数,因此调用的时候不要加()
[*]函数push():向数组末尾添加元素
[*]函数pop():删除数组末尾的元素
[*]函数splice(a, b):删除从a开始的b个元素
[*]函数sort():将整个数组从小到大排序
[*]自定义比较函数:array.sort(cmp),函数cmp输入两个需要比较的元素,返回一个实数,负数表示第一个参数小于第二个参数,0表示相等,正数表示大于。
test.js中的内容为:
let a = ;let b = [<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>1,// 变量<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>"kitty",// 变量<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>['a', 'b', 3],// 数组<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>function () {// 函数<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body><body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log("Hello World");<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body><body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>return 0;// 如果不加这句话,执行函数后返回undefined<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>},<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>{ name: "kitty", age: 18 }// 对象];let main = function() {<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(b.length);// 返回数组的长度,返回5<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>b.push(5);// 在末尾添加新的元素<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(b);<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>b.pop();// 删除最后一个元素<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(b);<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>a.sort();// 排序(从小到大),返回<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(a);<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>a.sort(function(a, b) {// 逆序(从大到小),返回<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body><body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>return b - a;<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>})<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(a);<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>a.splice(1, 2);// 删除从下标1开始的2个元素,返回<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(a);}export {<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>main}test.html中的内容为:
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>
函数
[*]函数是用对象来实现的。
[*]函数与C++中的函数类似。
函数的定义方式:
例如:
test.js中的内容为:
// 第一种定义方式function add(a, b) {<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>return a + b;}let main = function() {<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(add(3, 4));}export {<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>main}test.js中的内容为:
// 第二种定义方式let add = function(a, b) {<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>return a + b;}let main = function() {<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(add(3, 4));}export {<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>main}test.js中的内容为:
// 第三种定义方式let add = (a, b) => {<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>return a + b;}let main = function() {<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>console.log(add(3, 4));}export {<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>main}test.html中的内容为:
<body>
<body>
<body>
<body>
<body>
<body>
</body>
</body>
</body>
</body>
</body>
</body>
返回值:
[*]如果未定义返回值,则返回undefined。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]