1.CHROME 的 console中,shift+enter 是代码换行.
2.语句,用;
表示结尾,如果是;;;
就表示三个空语句.
表达式不能用;
结尾,否则会变成语句,1+3;
是一个无意义的语句.
3.声明变量不赋值,则变量为undefined
.如:var a;
x
// ReferenceError: x is not defined
//上面代码直接使用变量x,系统就报错,告诉你变量x没有声明。
4.变量提升(hoisting):不管变量在什么位置声明,都优先得到浏览器的响应.浏览器解析代码时,会先获取所有被生命的变量再一行行运行.
console.log(a);
var a = 1;
//undefined
运行时实际是下面的情况,即 a
的声明先得到响应,但是赋值却依然在下面.
var = a;
console.log(a);
a = 1;
5.标识符
js 标识符大小写敏感
命名时,首字母可用Unicode 字母(汉字也行),$
,_
等.后面的除了这些还能用数字.
JavaScript 有一些保留字,不能用作标识符:
arguments、break、case、catch、
class、const、continue、debugger、
default、delete、do、else、
enum、eval、export、extends、
false、finally、for、function、
if、implements、import、in、
instanceof、interface、let、new、
null、package、private、protected、
public、return、static、super、
switch、this、throw、true、
try、typeof、var、void、
while、with、yield。
6.下面这套代码只有x = 1 ;
有效,x = 3 ;
因为行前的-->
被视为单行注释,所以也被注释掉了.
x = 1; x = 3;
不过-->
只在行首会被当成单行注释,如果是n --> 0
会被当成运算符,即n--
大于0
.
function countdown(n) {
while (n --> 0) console.log(n);
}
countdown(3)
// 2
// 1
// 0
上面的代码输出2之后会继续输出,因为n--
是一个表达式,当输出一次之后会做一次 n-- 的运算再比较一次.
7.写相等运算符的时候,可以把数字放在运算符前面,3 === x;(不报错)
这样的,如果不小心写错了,3 = x ;(报错)
会报错,这样写如果出错了控制台会报出来.
运算符优先采用严格相等运算符.
- switch 表示根据值选择 case, 比方下面的,如果
x
为1
则执行1
的 case, 执行完毕后break
结束这段代码,下面的 case 都不会执行,如果没有break
则会继续执行下一个 case.
switch (x) {
case 1:
console.log('x 等于1');
break;
case 2:
console.log('x 等于2');
break;
default:
console.log('x 等于其他值');
}
switch
的语句的表达式跟case
之间的比较是===
性质的.
如果存在一个所有 case
以外的结果,则这个结果可以用default
表示.用法跟 case 一样,但是末尾不用加上break
.
9.三元运算符
(条件) ? 表达式1 : 表达式2
条件为 true 则表达式1,条件为 false 则表达式2.
10.while
循环,看下格式
var i = 0;
while (i < 100) {
console.log('i 当前为:' + i);
i = i + 1;
}
11.for
循环
var x = 3;
//for (初始化表达式initialize; 条件test; 递增表达式increment)
for (var i = 0; i < x; i++) {
console.log(i);
}
// 0
// 1
// 2
语句的三个部分都可以省略,不过会导致无限循环.
for ( ; ; ){
console.log('Hello World');
}
12.do...while
循环,不管条件是够为真,也会至少运行一次,这是这个循环的特点.
var x = 3;
var i = 0;
do {
console.log(i);
i++;
} while(i < x);
13.break
可以使代码在满足条件后 like 跳出循环.
var i = 0;
while(i < 100) {
console.log('i 当前为:' + i);
i++;
if (i === 10) break;
}
for (var i = 0; i < 5; i++) {
console.log(i);
if (i === 3)
break;
}
// 0
// 1
// 2
// 3
14.continue
语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环。
var i = 0;
while (i < 100){
i++;
if (i % 2 === 0) continue;
//当 i 为偶数时,不进行下一步直接跳回开头重新走循环
//只有 i 为奇数时,不会往回跳
console.log('i 当前为:' + i);
}
//最后输出的结果就是,100以内的所有奇数
15.标签label
,break
/continue
+label
的用法.
这里的代码我看不懂,不明白到底是怎么跳的,先往后看,一定记得把这里弄懂.
top:
for (var i = 0; i < 3; i++){
for (var j = 0; j < 3; j++){
if (i === 1 && j === 1) break top;
console.log('i=' + i + ', j=' + j);
}
}
// i=0, j=0
// i=0, j=1
// i=0, j=2
// i=1, j=0