JavaScript语法
学习方式:取其精华、去其糟粕、只讲变态。
前言: 由于ES3,ES5比较垃圾,而新的JS版本永远支持旧版本,所以ES6一半垃一半好,学习时要取其精华、去其糟粕。 为啥叫只讲变态呢,因为常态的东西一般都不会错,记住容易错的,不就学会了吗?面试考的就是变态的。
- 表达式和语句
- 标识符的规则
- if else语句
- switch语句
- 问号冒号表达式
- 短路逻辑
- while for语句
- break continue
- lable
1. 表达式和语句
表达式(取值)、语句(改变环境)
- 变量指的是在程序中保存数据的一个容器
- 变量是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据
- 也就是说,我们向内存中存储了一个数据,然后要给这个数据起一个名字,为了是我们以后再次找到他
- 语法: var 变量名 = 值
// 定义一个变量 var num; // 给一个变量赋值 num = 100; // 定义一个变量的同时给其赋值 var num2 = 200;
变态: return
后不能加回车
2. 标识符的规则
变态: 取名字用的符号,反正不能是 数字开头
3. if else
语句 需要 === 3个等于
变态:如果if下面有2个语句,只管到下面第一个语句
4. switch
语句
5. 问号冒号表达式(最简单的if else
)
6. 短路逻辑 &&
如果前面为真 ,就求后面的。
下面有2道题,大家不知道答案可以打开控制太去试试:
A题: 1 && 2
的值是 (2)
- 1
- 2
- trueC
B题 : 0 && 2
的值是(0)
- 0
- 2
- false
变态:他的值大部分都不是 true和false
7. while for
语句
- while循环的语法和if非常相似,几乎完全一样,但区别是,只要给定条件的结果是true,那花括号中的代码就会反复执行下去:
- for循环和while循环是类似的,事实上它是while循环的一种变体,一种更紧凑的形式而已。
// while var num = 1; while(num < 10) { alert(num); num++; } // for var i; for (i = 1; i < 10; i++) { alert(i); }
8. break
break
语句和continue
语句都具有跳转作用,可以让代码不按既有的顺序执行。
break语句用于跳出代码块或循环。
var i = 0; while(i < 100) { console.log('i 当前为:' + i); i++; if (i === 10) break; }
上面代码只会执行10次循环,一旦i等于10,就会跳出循环。
for循环也可以使用break语句跳出循环。
for (var i = 0; i < 5; i++) { console.log(i); if (i === 3) break; } // 0 // 1 // 2 // 3
上面代码执行到i等于3,就会跳出循环。
continue语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环。
var i = 0; while (i < 100){ i++; if (i % 2 === 0) continue; console.log('i 当前为:' + i); }
9. lable
JavaScript
语言允许,语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置,标签的格式如下。
label:
语句
标签可以是任意的标识符,但不能是保留字,语句部分可以是任意语句。
标签通常与break语句和continue语句配合使用,跳出特定的循环。
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
上面代码为一个双重循环区块,break
命令后面加上了top标签(注意,top不用加引号),满足条件时,直接跳出双层循环。如果break
语句后面不使用标签,则只能跳出内层循环,进入下一次的外层循环。
标签也可以用于跳出代码块。
foo: { console.log(1); break foo; console.log('本行不会输出'); } console.log(2); // 1 // 2
上面代码执行到break foo,就会跳出区块。
continue语句也可以与标签配合使用。
top: for (var i = 0; i < 3; i++){ for (var j = 0; j < 3; j++){ if (i === 1 && j === 1) continue top; console.log('i=' + i + ', j=' + j); } } // i=0, j=0 // i=0, j=1 // i=0, j=2 // i=1, j=0 // i=2, j=0 // i=2, j=1 // i=2, j=2
上面代码中,continue
命令后面有一个标签名,满足条件时,会跳过当前循环,直接进入下一轮外层循环。如果continue
语句后面不使用标签,则只能进入下一轮的内层循环。
本文参考了知乎、CSDN、网道JavaScript 的一些知识,有描述不准确的地方还希望大多多家指正!!!