5.分支语句
(1)if分支语句
语法:
1.单分支语句:
if(条件表达式) {
满足条件要执行的语句
}
2.双分支语句:
if (条件表达式){
满足条件要执行的语句
} else {
不满足条件要执行的语句
}
3.多分支语句:
if (条件1) {
语句1
} else if (条件2) {
语句2
} else if (条件3) {
语句3
} else {
语句4
}
备注:除了0所有的数字都为真,除了’ '所有的字符串都为真。
(2)三元运算符和switch语句
1.三元运算符语法:条件 ? 满足条件执行 :不满足条件执行
2.switch语句:
``switch (值) {
case 值1:
代码1
break
case 值2:
代码2
break
…
default:
代码n }
备注:
1.switch…case
通常处理case为比较确定值的情况,而if…else…
通常用于范围判断。
2.当分支比较少时用if…else;当分支比较多时,用switch。
(3)断点调试
浏览器打开调试界面
- 按F12打开开发者工具
- 点到源代码一栏 ( sources )
- 选择代码文件刷新
6.循环语句
(1)while循环
语法:
while (循环条件) {
要重复执行的代码(也叫循环体)
}
循环三要素:
1.初始值 (经常用变量)
2.终止条件
3.变量的变化量
let i = 1
while (i <= 3) {
document.write('哈哈哈')
i++
}
(2)中止循环和无限循环
1.break
:中止整个循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用(提高效率)。
2.continue
:中止本次循环,一般用于排除或者跳过某一个选项的时候。
3.while(true)
和for( ; ; )
都可以来构造“无限”循环,需要使用break退出循环。
(3)for循环
语法格式:
for(变量起始值; 终止条件; 变量变化量) {
要重复执行的代码
}
for (let i = 1; i <= 3; i++) {
document.write('月薪过万')
}
//遍历数组
let arr = ['刘德华', '刘晓强', '刘晓庆', '刘若英', '刘热巴', 'pink老师']
for (let i = 0; i < arr.length; i++) {
console.log(arr[i])
}
(4)循环嵌套
语法:
for(外部声明记录循环次数的变量; 循环条件; 变化量) {
for(内部声明记录循环次数的变量; 循环条件; 变化量) {
要重复执行的代码
}
}
let row = +prompt('请输入行数:')
let col = +prompt('请输入列数:')
//外层循环打印行数
for (let i = 1; i <= row; i++) {
//里层循环打印几个星星
for (let j = 1; j <= col; j++) {
document.write('☆')
}
document.write('<br>')
}
7.数组
(1)声明数组和访问数组
声明:let 数组名 = [数据1,数据2,数据3,...]
或者 let 数组名 = new Array(数据1,数据2...)
访问:变量名[索引值或者下标]
let classes = ['小明', '小刚', '小红', '小丽', '小米']
//访问
classes[0]
//下标从0开始
备注:数组长度:数组名.length
遍历数组:
for (let i = 0; i < 数组名.length; i++) {
数组名[i]
}
遍历累加:
for (let i = 0; i < arr.length; i++) {
sum = sum + arr[i]
}
求最大值:
let arr = [2, 6, 1, 7, 400, 55, 88, 100]
//max里面要存的是最大值
let max = arr[0]
//遍历数组
for (let i = 1; i < arr.length; i++) {
//如果max 比 数组元素里面的值小,我们就需要把这元素赋值给 max
if (max < arr[i]){
max = arr[i]
}
}
(2)操作数组
1.查:数组名[下标]
2.改:数组名[下标]=新的值
3.增
1.数组名.push( )
将元素添加到数组末尾,返回该数组新长度。
2.数组名.unshift( )
将元素添加到数组开头,返回该数组新长度。
语法:
arr.push(元素1,...元素n)
语法:
arr.unshift(元素1,...元素n)
let arr = ['pink', 'hotpink']
//新增 push 推末尾
arr.push('deeppink')
console.log(arr.push('deeppink')) //3 //返回该数组新长度
//开头追加
arr.unshift('red')
4.删
1.数组名.pop( )
删除最后一个元素,返回该元素的值。
2.数组名.shift( )
删除开头一个元素,返回该元素的值。
语法:
arr.pop()
arr.shift()
let arr = ['red', 'green', 'blue']
arr.pop()
console.log(arr.pop()) // blue
arr.shift()
3.数组名.splice( )
删除指定元素。
语法:
arr.splice(start,deleteCount)
arr.splice(起始位置,删除几个元素)
//如果不指定deleteCount,则默认删到最后
let arr = ['red', 'green', 'blue']
arr.splice(1, 1) //是从索引号1的位置开始删,只删除1个
arr.splice(1) //从green 删除到最后
(3)冒泡排序
let arr = [5, 4, 3, 2, 1]
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j < arr.length - i - 1; j++) {
// 开始交换 但是前提 第一个数大于第二个数才交换
if (arr[j] > arr[j + 1]) {
// 交换2个变量
let temp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = temp
}
}
}
数组排序:
arr.sort() // 排序
//sort 升序排列
arr.sort(function (a, b) {
return a - b
})
//sort() 降序
arr.sort(function (a, b) {
return b - a
})
console.log(arr)