JavaScript-if注意点
- 对于非布尔类型的数据, 会先转换成布尔类型再判断
if(null){
console.log("语句A");
}
console.log("语句B");
输出的语句B,null转成false了
- 对于==/===判断, 将常量写在前面
let num = 10;
if(num == 5){
console.log("语句A");
}
console.log("语句B");
有时候,忘记把==写成了=号,这时候也是过的,
if(num = 5){
console.log("语句A");
}
console.log("语句B");
如果把5写在前面,就会报错
if(5 = num){
console.log("语句A");
}
上面的if(5 = num){会报错
- if/else if/else后面的大括号都可以省略, 但是省略之后只有紧随其后的语句受到控制
if(false)
console.log("语句A");
console.log("语句B");
上面的代码值输出语句A
- 在JavaScript中分号(;)也是一条语句(空语句)
if(false);{
console.log("语句A");
console.log("语句B");
}
输出了A和B,分号相当于把if和{}分开成了2部分
- if选择结构可以嵌套使用
if(true){
if(false){
console.log("语句A1");
}else{
console.log("语句B1");
}
}
- 当if选择结构省略大括号时, else if/else会自动和距离最近没有被使用的if匹配
if(0)
if(1)
console.log("A");
else
console.log("B");
else
if (1)
console.log("C");
else
console.log("D");
JavaScript-Switch注意点
- case判断的是===, 而不是==
- ()中可以是常量也可以是变量还可以是表达式
- case后面可以是常量也可以是变量还可以是表达式
- break的作用是立即结束整个switch语句,在switch语句中一旦case或者default被匹配, 那么其它的case和default都会失效
- default不一定要写在最后,switch中的default无论放到什么位置, 都会等到所有case都不匹配再执行
- 和if/else中的else一样, default也可以省略
JavaScript控住流
- 在JavaScript中定义变量有两种方式
- ES6之前: var 变量名称;
- ES6开始: let 变量名称;
- 两种定义变量方式的区别
- 如果通过var定义变量, 可以重复定义同名的变量, 并且不会报错, 并且后定义的会覆盖先定义的
- 如果通过var定义变量, 可以先使用后定义(预解析)
- 如果通过let定义变量, 不可以重复定义同名的变量
- 如果通过let定义变量, 不可以先使用再定义, 因为浏览器不会对let定义的变量进行预解析
- 什么是全局变量
- 全局变量就是定义在{}外面的变量, 我们就称之为全局变量
- 什么是局部变量
- 局部变量就是定义在{}里面的变量, 我们就称之为局部变量
- 全局变量和局部变量的区别
- 如果是全局变量, 那么有效范围是从定义变量的那一行开始直到文件的末尾都可以使用
- 如果是局部变量, 那么有效范围是从定义变量的那一行开始直到大括号结束为止(只有在大括号中才能使用)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>51-JavaScript-变量作用域</title>
<script>
/*
// var num = 123;
// var num = 456;
// console.log(num);
// console.log(num);
// var num = 123;
*/
/*
var num;
console.log(num);
num = 123;
*/
/*
// let num = 123;
// let num = 456;
// console.log(num);
// let num = 123;
*/
// 无论是通过var还是通过let定义的全局变量, 都是从定义的那一行到文件末尾都可以使用
// var num = 123; // 全局变量
// let num = 123; // 全局变量
{
// 如果是通过var定义的局部变量, 和全局变量一样, 后续都可以被使用
// 如果是通过let定义的局部变量, 那么这个变量只能在当前定义变量的{}中使用
// var num = 666; // 局部变量
let num = 666; // 局部变量
console.log(num);
}
console.log(num);
if(true){
console.log(num);
}
</script>
</head>
<body>
</body>
</html>
<script>
console.log(num);
</script>
网友评论