代码块
使用{}创建代码块,代码块可以对代码进行分组
{
let a = 10
console.log("代码块1",a) // 10
}
{
let a = 20
console.log("代码块2",a) // 20
}
{
var b = 30
}
{
console.log("代码块3",b) // 30
}
let声明的变量具有块作用域,在代码块中声明的变量无法在代码块外部访问
var声明的变量不具有块作用域,可以在代码块外部访问
if语法
// if语句,如果if后面的表达式不是布尔值,会转换为布尔值再运算
if ("条件表达式"){
console.log("代码块")
}
// if-else分支语句
if ("条件表达式1"){
console.log("代码块1")
}else if("条件表达式1"){
console.log("代码块2")
}else{
console.log("代码块3")
}
执行流程(短路):
- 自上向下依次对表达式进行求值判断,如果执行到结果为true,则执行对应代码块,后面的分支都不会执行,如果全部是false,执行else代码块
prompt()函数
用来获取用户输入的内容
let content = prompt("请输入内容:") //前端类型alert形式的弹窗输入框,默认类型是string
isNaN函数()
检查一个Number是不是NaN
let content = +prompt("请输入数字:")
// 代码块不会执行,因为NaN不和任何任何相等
if (content === NaN){
console.log()
}
// 检测content是不是NaN
if (isNaN(content)){
console.log()
}
switch语法
switch ("表达式"){
case "表达式":
console.log(1)
break
case "表达式1":
console.log(2)
break
case "表达式2":
console.log(3)
break
}
switch语句在执行时,会依次将switch后的表达式和case后的表达式进行全等比较,如果比较结果为true,则自当前case处开始执行代码,如果比较结果为false,则继续比较其他case后的表达式,直到找到true为止,如果所有的比较都是false,则执行default后的语句
当比较结果为true时,会从当前case处开始执行代码,也就是说case是代码执行的起始位置,如果不写break,执行后续所有代码,不论case表达式是否相等,使用break,当前case执行完后不会继续向执行
循环语法
while循环
while ("循环表达式"){
console.log("while")
}
语句在执行时,会先对条件表达式进行判断,如果结果为true,则执行循环体,执行完毕,继续判断,如果为true,则再次执行循环体,执行完毕,继续判断,直到条件表达式结果为false时,循环结束
do-while循环
do{
console.log("do-while代码块")
}while("循环表达式")
do-while语句在执行时,会先执行do后的循环体,执行完毕后,会对while后的条件表达式进行判断,如果为false,则循环终止,如果为true,则继续执行循环体,以此类推
while语句是先判断再执行,do-while语句是先执行再判断(循环至少执行一次)
for循环
for("初始化表达表达式";"条件表达式";"更新表达式"){
console.log("for循环代码块")
}
for (let m = 0; m < 5; m++) {
console.log(m)
}
// for循环语法中的表达式都可以进行省略,为空即可
let s = 0
for (;s<5;){
s++
}
// 死循环
for (;;){
console.log("死循环")
}
执行流程:
- 执行初始化表达式,初始化变量
- 执行条件表达式,判断循环是否执行(true执行,false终止)
- 判断结果为true,则执行循环体
- 执行更新表达式,对初始化变量进行修改
- 重复第二步,直到判断为false为止
break和continue
break
break用来终止switch和循环语句
let a = 10
for (; a < 20; a++) {
if (a===15){
break // a的值是15的时候,终止循环
}
console.log(a) // 10~14
}
continue
continue用来跳过当次循环,执行下一次循环
let a = 10
for (; a < 20; a++) {
if (a%2 === 0){
// a是偶数的时候,跳出本次循环,继续下一次循环
continue
}
console.log(a) // 11、13、15、17、19
}
console.time() / console.timeEnd()
console.time()和console.timeEnd()是用于测量代码执行时间的方法
console.time("标识a") // 开始计时
// 代码块
console.timeEnd("标识a") // 结束计时
// 标识输入如果为空,则默认为default,如果自定义标识名,timeEnd标识要与time的标识一致,用于区分多对不同的计时
标签:控制,console,log,流程,Js,循环,执行,代码,表达式
From: https://www.cnblogs.com/Mickey-7/p/18441795