今日内容:
数组
函数
数组
问题:
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语句有什么作用?
概念
数组可用于在一个变量中存放多个值
创建数组
var arr = [1,2,'a',false]; //简洁,最常用
var arr = new Array(1,2,3) //[1,2,3]
var arr = new Array(8)
var arr = Array()//[]
//注意:数组是一种特殊的对象 typeof [] == 'object'
访问数组元素及数组遍历
var arr = [1,2,'a',false];
//输出arr中第2个元素
console.log(arr[1])
//数组遍历
for(var i=0;i<arr.length;i++){
console.log(arr[i])
}
新增数组元素
var arr = [];
for(var i=0;i<10;i++){
arr[arr.length]=i+1;
}
console.log(arr)//[1,...,10]
其他数组操作
//往数组中存入1-10 10个值
var arr = [];
for(var i=0;i<10;i++){
arr[arr.length]=i+1;
}
//翻转数组
var newArr = []
for(var i=arr.length-1;i>=0;i--){
newArr[newArr.length]=arr[i]
}
//数组排序
var arr = [3,5,1,4,2]
// 控制比较的趟数
for(var i=1;i<arr.length;i++){
// 控制每趟中比较的次数
for(var j=0;j<arr.length-i;j++){
if(arr[j]>arr[j+1]){
var tmp = arr[j];
arr[j]=arr[j+1]
arr[j+1]=tmp;
}
}
}
函数
概念
一段按特定格式封装好的,方便多处重复调用的代码
函数基本使用
//对于内置函数 如 alert parseInt Number 直接调用即可
//对于自定义函数 需先定义 再调用
sayHi()
function sayHi(){
alert('Hi')
}
sayHi()
函数参数
// 要想让函数可以灵活地处理不同的数据,需要设置参数
function sayHi(word1,word2){ //此处word1,word2为形参(形式参数),相当于一个变量,函数定义时是没有具体值的
alert(word1)
}
sayHi('hello') //此处'hello'为实参(实际参数),相当于是给形参变量赋的值 运行效果为 弹出 hello
//js函数形参与实参个数尽量保持一致,但js也允许不一致,若实参个数小于形参个数,则未对应实参的形参值为undefined,当实参个数多于形参个数时不影响函数的执行
函数返回值
//要想在调用函数时返回一个值需要使用return语句,否则函数调用时的返回值默认为undefined
function getMax(num1,num2){
return num1>num2?num1:num2;
}
console.log(getMax(100,200)) //200
// return除了能返回值还会终止函数的执行,函数体内return后面的语句都不会被执行
// return语句默认只能返回一个值,若想返回多个值可返回一个数组或对象
// return只能用在函数体内,不能直接在外面使用,若函数内的循环体内使用了return则直接终止循环及整个函数