练习
1. var a = 3; var b = a++; a + b + a++`该代码输出的值为
var a = 3; // a == 3
var b = a++; // b == 3 a 再下一次的时候 == 4
console.log(a + b + a++) // a + b + a++ ===> 4 + 3 + 4
2.console.log(parseInt(1 * 100 / 3 + ""))`该代码输出的值为
var a = parseInt(1 * 100 / 3 + "")
parseInt(1 * 100 / 3 + "")
parseInt(100 / 3 + "")
parseInt(33.33333333... + "")
parseInt('33.33333333')
*33
console.log(a)
3. var a = 3; a++; a++; var b = a+2; ++a; console.log(a)` 该代码输出的值为
var a = 3; // a == 3
a++; // a 在此处先参与周围表达式运算, 所以应该这行为3, 但是参与完成后就自增, 也就是下次一调用, 就是4
a++; // a 下一次调用 为 5
var b = a+2; // b == 7 a == 5
++a; // a 加加在前, 先自增 a == 6
console.log(a) // 6
4. `3 - "36" % 5 + "2" - 2`该代码输出的值为
// var a = 3 - "36" % 5 + "2" - 2
/**
* 3 - "36" % 5 + "2" - 2
* 3 - 1 + "2" - 2
* 2 + "2" - 2
* "22" - 2
* 20
*/
// console.log(a)
5. `var a = 4; var num = 1 * (2 + 3) && a++ || 5 > 6 && 7 < 8 || !9;` num的值是
// var a = 4;
// var num = 1 * (2 + 3) && a++ || 5 > 6 && 7 < 8 || !9
/**
* 1 * (2 + 3) && a++ || 5 > 6 && 7 < 8 || !9
* 1 * (2 + 3) && 4 || 5 > 6 && 7 < 8 || !9
* 5 && 4 || 5 > 6 && 7 < 8 || !9
* 4 || 5 > 6 && 7 < 8 || !9
* 4 || false && true || !9
* 4 || false || !9
* 4 || false || false
* 4 || false
* 4
*/
// console.log(num)
// console.log(a) // ?
while循环
初始值;
while(表达式 ){
循环体;
步长;
}
var num = 1 // 1. 初始化
while (num < 5) { // num < 5 2. 循环结束条件
console.log(1) // 3. 循环体
num++ // 4. 改变自身, 不写还能执行, 但是是死循环, 电脑死机速度, 取决电脑质量
}
练习:
// 1 + 2 + 3 + 4 + 5 +.... + 99 + 100 ==> 5050
var num = 1
var sum = 0
while (num < 101) {
sum = num
// console.log(num)
num++
}
/**
* 第一次循环 将 num 的值赋值给 sum ===> sum == 1
* 第二次循环 将 num 的值赋值给 sum ===> sum == 2
* 第100次循环 将 num 的值赋值给 sum ===> sum == 100
*/
// 求 1~100 之间所有 3 的倍数的和
// 扩展: 1 求1~100偶数的和; 2 求1~100奇数的和
var num = 1
var sum = 0
while (num < 101) {
if (num % 3 == 0) {
sum += num
}
num++
}
console.log(sum)
do....while
初始值
do{
循环体
步长
}while(表达式)
var num = 1
do {
console.log(1)
num++
} while (num < 5)
- do...while和while的差异:
- do...while 在首次执行的时候,会先执行循环体,然后判断
- while在首次执行的时候,会先判断,然后符号条件了在执行
for循环
- 语法:for(初始值;结束条件;步长)
-
for (var i = 0; i < 3; i++) { console.log(1) } - 练习
-
// 需求: 1 + 2 + 3 + 4 + 5 +.... + 99 + 100 ==> 5050 var sum = 0 for (var i = 1; i < 101; i++) { sum += i // console.log(i) } console.log(sum)
for循环嵌套
for (var i = 0; i < 3; i++) { // 外层 for 循环
for (var k = 0; k < 3; k++) { // 内层 for 循环
console.log('1111')
}
}
- for循环---99乘法表
-
for (var k = 1; k <= 9; k++) { // 外层循环, 控制有多少行 for (var i = 1; i <=k; i++) { // 内层循环, 控制一行有多少个(控制有多少列) document.write(` ${i}*${k}=${k*i}`) } document.write('<br>') }
流程控制语句
break 只终止函数中的程序
for (var i = 1; i <= 5; i++) {
console.log('我吃了', i, '个包子')
if (i == 3) {
console.log('我吃了 3 个包子了, 我吃饱了, 我不吃了')
break
}
}
return 可以终止整个函数中的所有程序
continue 只终止那一次程序 接下来的还会继续执行
for (var i = 1; i <= 5; i++) {
if (i == 3) {
console.log('完犊子~~这是第三个包子, 它掉地上了')
continue
}
console.log('我吃了第', i, '个包子')
}