一、循环
1.循环定义:重复结构,根据条件重复执行循环体语句。
(1)while:(当循环){
循环体语句
}
(2.)do-while循环:“直到”型循环
do{
循环体语句
}while(条件表达式)
(3.)for(初始值;条件;迭代){
循环体语句
}
注意:三个表达式都可以省略,但是分号不能省略
for(...;...;):死循环
2.循环终止的语句:
(1)break语句:终止循环
(2)continue语句:结束本次循环,继续执行下一次循环
3.条件语句(选择结构)
(1)if--else
(2)switch--case--break(多分支选择)
(3)条件运算符:条件表达式?表达式1:表达式2
4.运算符
(1)算术运算符:++、-- 例:i=2 i++ ++i
(2)逻辑运算符:&& || !
(3)关系运算符:< > <= >= == != === !==
(4)位运算符:& | ^
二、数制的转换
1.二进制——十进制
(1)除2取余法
(2)降幂法
2.八进制:以0开头 例如:0 1 2
3.十六进制:以0X开头 例如:0Xffffff
三、数组
定义:内存中一块连续的存储单元,这些存储单元具有共同的名称不同的索引(下标)
1.数组的声明:数组字面量【】
例:
var arr = [] //声明一个数组,数组名为arr,数组中没有元素
console.log(arr)
var a = [11,22,33,44,55] //声明一个包含4个元素的数组a
var b = [66] // 声明一个包含1个元素的数组b
console.log(a或b)
2.数组的属性
length表示数组元素的个数(数组的单元个数) 数组名:length
3.数组元素的索引:从0开始到数组的单元格数减1
4.数组元素的访问:数组名【索引】
5.数组的遍历:不重复的访问数组的每个元素
(1)使用for循环遍历
(2)使用for...in循环:
for(index in 数组/对象/集合){
循环体语句
}
index:表示的是数组元素的索引
(3)使用for...of循环(value of 数组名){
循环体语句
}
value:表示数组元素
练习1.定义一个具有10个单元的数组(放10个整数),输出索引为偶数的元素
var arr = new Array(11,43,34,47,66,55,77,7,98,23);
for(let i in arr){ //在for in循环里 i就是下标
if(i % 2 == 0){
console.log(arr[i]);
(4)forEach循环遍历:
数组名.forEach(function(value,index){
函数体语句
})
value:表示数组元素
index:数组元素的下标
数组元素的下标:数组元素在数组中的位置编号(从0开始到数组的长度减1)
练习2:定义一个数组,数组元素是[12,125,34,45,506,44,66,77,88,99],输出数组中的最大值
var arr = new Array(12,125,34,45,506,44,66,77,88,99);
let max = arr[0];
arr.forEach(function(value,index){
if(value > max){
max = value;
}
})
console.log('max=',max);
练习3.定义一个数组,数组元素是[12,125,34,45,506,44,66,77,88,99],输出所有数组元素之和
var arr = new Array(12,125,34,45,506,44,66,77,88,99);
let intotal = 0;
arr.forEach(function(value,index){
intotal += value
})
console.log(intotal);
第二种
for(let i in arr){
intotal += arr[i]
}
console.log(intotal);
第三种
for(let i= 0;i < arr.length; i++){
intotal += arr[i];
}
console.log(intotal);
第四种
for(let value of arr){
intotal += value;
}
console.log(intotal);
(5)使用map函数遍历数组:实际是对数组的过滤。返回一个新的数组,原数组不变
let 新数组名 = 原数组名.map(function(item){ //item表示数组元素
函数体语句
})
四.数组的排序
1、冒泡排序:数据两两比较,如果发现存在大小关系,就进行交换