他的回复:
华为云ID:hw49725702 ### 第四章 数组与函数 创建数组的两种方式 ```js var arr = []; var arr = new Array(); ``` 数组从0开始编号 ```js var arr = ["A","B","C"]; alert(arr[0]);//A alert(arr[1]);//B alert(arr[2]);//C ``` 可以替换元素 ```js var arr[2]="D";//现在变成了 ["A","B","D"] ``` 获取数组的总个数:length ```js var arr = ["A","B","C"]; arr.length;//3 ``` 数组可以存放任意类型的元素 pop/push/shift/unshift方法 - push 在末端添加一个元素 - shift 取出第一个元素,整个队列往前移 - pop 取出并返回数组的最后一个元素 - push 在数组末端添加元素 Array.isArray 如果value是一个数组,则返回true;否则返回false ```js alert(Array.isArray({}));//false alert(Array.isArray([]));//true ``` 数组是基于对象的,不构成单独的语言类型 改变原数组的方法 a.splice()/ a.sort() / a.pop()/ a.shift()/ a.push()/ a.unshift()/ a.reverse() ### 不改变原数组的方法 slice、join、toLocateString、toStrigin、cancat、indexOf、lastIndexOf、 循环 - for 循环 ```js var arr = ["A","B","C"]; for(var i=0;i) } ``` - for...of循环 ```js var arr = ["A","B","C"]; for(var arrs of arr){ alert(arrs); } ``` - for...in循环 ```js var arr = ["A","B","C"]; for(var key in arr){ alert(arr[key]); } ``` 多维数组 ```js var maxs = [ [0,0,0,0], [0,0,1,0], [0,0,0,1], ]; alert(maxs[1][1]); ``` ### 函数的意义:高内聚,低耦合。复用与多态 函数可以封装任意多条语句,而且可以在任何地方,任何时候进行调用,非常灵活。 ```js function fn(a,b){ console.log(a-b); } fn(10,5);//输出5 fn(20,2);//输出18 ``` 函数可以通过他的函数名来调用,后面加(),就可以执行了。 ### 函数的定义 - 函数直接量定义 ```js var test = function fn(a,b){ console.log("函数直接量定义方法",a+b); } ``` - 构造函数定义 ```js var arr = new Function("arg1","arg2","arg3","console.log("构造函数的定义方法"),arg1+arg2+arg3"); ``` - function语句的定义方法 ```js function test1(arg1,arg2){ console.log("hehe"); } ``` - 对象定义方法 ```js var text = { init:function(){ console.log(111); } } ``` **return语句** - 函数的返回值只能通过`return`来返回,除了`return`以外,没有任何声明可以表示返回值 - 不要求函数是否返回一个值,但是每个函数都有`return`的权利。 - 无论`return`在哪里,只要执行了return同一条代码后,函数就会立即停止执行,并且立即退出,位于`return`之后的代码永远不会被执行。 - 一个函数可以有多条`return`。 - `return`语句可以不带任何返回值,这种情况,函数的返回值是`undefined`