1. 表达式和语句
表达式一般都有值,语句可能有值也可能没有,语句一般会改变环境(声明、赋值),但这些都不是绝对的。
1 + 2 表达式值为 3
console.log 表达式的值为函数本身
add(1, 2) 表达式的值为函数的返回值
console.log(3) 表达式的值为 undefined,打印3
var a = 1 是一个语句,值为 undefined
2. 标识符的规则
第一个字符可以是 Unicode字母、$、下划线(_)或中文
后面的字符,除了上述字符,还可以有数字
变量名是标识符
JavaScript 大小写敏感
3. 注释
好的注释:告诉你为什么要这样写
烂的注释:告诉你写了什么
4. if else 语句
// 打印结果是什么? var a = 1; if(a === 2) console.log(a); console.log('a等于2'); // 结果打印 a等于2,因为 if 语句省略花括号时,只有一句 // 打印结果是什么? var a = 1; if(a === 2) console.log(a), console.log('a等于2'); // 结果什么也不打印,因为逗号表示语句未结束 // 前端常用 && 和 || 代替 if 语句 a = a || 100; // 等同于以下语句 if(a) { a = a; } else { a = 100; // 保底值 } window.f1 && console.log('不存在'); false && 3 || true && 4; /* 结果为4。 |
(1) 因为与、或、非运算优先级 ! > && >|| ,所以先执行两边的 && 运算,最后执行 || 运算。
(2) && 运算,左边表达式判断是 false,则返回左边表达式的值,否则返回右边表达式的值。
false && 3 结果为 false。true && 4结果为4。
(3) || 运算,左边表达式判断是 true,则返回左边表达式的值,否则返回右边表达式的值。*/
5. while / for 语句
for 循环:可以在很明确循环次数上去做内容
while 循环:不明确循环次数,也可以做。场景:如猜数字
do…while:至少会执行一次
// 是否会死循环? var a = 0.1; while(a != 1) { console.log(a); a = a + 0.1; } // 会死循环。因为浮点数相加过程中逐渐不精确,无法到达1 // 执行完语句后 i 为多少? for(var i = 0; i < 5; i++) { console.log(i); } // i = 5 // 打印结果是什么? for(var i = 0; i < 5; i++) { setTimeout(() => { console.log(i); }, 0) } // 打印 5 次 5。 // for 循环先执行,每次执行把定时器放到事件队列里。 // 主线程 for 循环执行完了,才会执行事件队列里的。 // 希望 5次按顺序打出数字,将 var 改为 let 即可。 // 几秒打出几? for(var i = 0; i < 3; i++) { setTimeout(() => { console.log(i); }, 1000*i) } // 0 秒输出一次 3,1 秒输出一次3, 2 秒输出一次 3。 |
6. break / continue
break 和 continue 跳出最接近的循环,对循环外的循环没有影响。
7. label 语句
语法如下
foo: { console.log(1); break foo; console.log('本行不会输出'); } console.log(2); // 打印结果 1 和 2 // 以下是什么? { foo: 1; } // 是 label,值为1 // 以下是什么? var a = { foo: 1 } // 是对象 |
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。