今日内容:

数组

函数

数组

问题:

1 数组有什么作用?在一个变量中存放多个数据

2 如何创建数组?两种方式 a 字面量 b new Array()

3 如何访问数组元素?数组名[下标]

4 什么是遍历?如何遍历数组元素? 访问所有数组元素

5 如何获取数组元素的个数?数组名.length

6 试描述求数组中最大值的思路 擂台算法:将所有元素和某个变量(初值为数组第一个元素)比较,只要比该变量大则赋值给该变量

7 试描述将数组中所有元素拼接成字符串的思路 定义空字符串,遍历数组,拼接字符串

8 如何为数组新增元素? newArr[newArr.length] = val

9 试描述筛选数组中符合条件的元素且存放到一个新数组中的思路

10 试描述翻转数组的思路

11 试描述冒泡排序的思路

12 函数有什么作用?

13 使用自定义函数有哪两个步骤?

14 函数参数有什么作用?

15 函数包含哪几个部份?

16 函数通过什么语句返回一个值?默认返回什么?

17 return语句有什么作用?

概念

数组可用于在一个变量中存放多个值

创建数组

  1. var arr = [1,2,'a',false]; //简洁,最常用
  2. var arr = new Array(1,2,3) //[1,2,3]
  3. var arr = new Array(8)
  4. var arr = Array()//[]
  5. //注意:数组是一种特殊的对象 typeof [] == 'object'

访问数组元素及数组遍历

  1. var arr = [1,2,'a',false];
  2. //输出arr中第2个元素
  3. console.log(arr[1])
  4. //数组遍历
  5. for(var i=0;i<arr.length;i++){
  6. console.log(arr[i])
  7. }

新增数组元素

  1. var arr = [];
  2. for(var i=0;i<10;i++){
  3. arr[arr.length]=i+1;
  4. }
  5. console.log(arr)//[1,...,10]

其他数组操作

  1. //往数组中存入1-10 10个值
  2. var arr = [];
  3. for(var i=0;i<10;i++){
  4. arr[arr.length]=i+1;
  5. }
  6. //翻转数组
  7. var newArr = []
  8. for(var i=arr.length-1;i>=0;i--){
  9. newArr[newArr.length]=arr[i]
  10. }
  11. //数组排序
  12. var arr = [3,5,1,4,2]
  13. // 控制比较的趟数
  14. for(var i=1;i<arr.length;i++){
  15. // 控制每趟中比较的次数
  16. for(var j=0;j<arr.length-i;j++){
  17. if(arr[j]>arr[j+1]){
  18. var tmp = arr[j];
  19. arr[j]=arr[j+1]
  20. arr[j+1]=tmp;
  21. }
  22. }
  23. }

函数

概念

一段按特定格式封装好的,方便多处重复调用的代码

函数基本使用

  1. //对于内置函数 如 alert parseInt Number 直接调用即可
  2. //对于自定义函数 需先定义 再调用
  3. sayHi()
  4. function sayHi(){
  5. alert('Hi')
  6. }
  7. sayHi()

函数参数

  1. // 要想让函数可以灵活地处理不同的数据,需要设置参数
  2. function sayHi(word1,word2){ //此处word1,word2为形参(形式参数),相当于一个变量,函数定义时是没有具体值的
  3. alert(word1)
  4. }
  5. sayHi('hello') //此处'hello'为实参(实际参数),相当于是给形参变量赋的值 运行效果为 弹出 hello
  6. //js函数形参与实参个数尽量保持一致,但js也允许不一致,若实参个数小于形参个数,则未对应实参的形参值为undefined,当实参个数多于形参个数时不影响函数的执行

函数返回值

  1. //要想在调用函数时返回一个值需要使用return语句,否则函数调用时的返回值默认为undefined
  2. function getMax(num1,num2){
  3. return num1>num2?num1:num2;
  4. }
  5. console.log(getMax(100,200)) //200
  6. // return除了能返回值还会终止函数的执行,函数体内return后面的语句都不会被执行
  7. // return语句默认只能返回一个值,若想返回多个值可返回一个数组或对象
  8. // return只能用在函数体内,不能直接在外面使用,若函数内的循环体内使用了return则直接终止循环及整个函数