1. 表达式与语句
表达式
- 一般来说,表达式都伴随值或返回值的存在。但这并非绝对的
- 1 + 2表达式的值是 3
- add(1,2)表达式的值为函数add()的返回值
- console.log表达式的值为console对象的log函数本身
- console.log(3)表达式的值是console.log(3)的返回值,但是因为log函数并没有设定返回值,所以JS默认返回undefined
- 值是值,返回值是返回值两者并不是一个东西。
语句
- 语句的作用一般具有一定的功能,如:声明,赋值等。但这也并非绝对的
- var a = 1 这就是一个简单的语句。
2. JS要注意的地方
- JS对 大小写是敏感的,object和Object是不一样的
- JS中大部分的空格、回车是没有意义的,而且连续的空格、回车会被默认成1个空格。但JS中有一个地方不能加回车,就是函数的return后面,return后面只能在return的同一行写返回的内容,因为return后面的内容并不执行。 3.JS中的 (逗号,)与(分号;):逗号代表该语句还没结束,逗号可以吧多行语句连接成1行语句的效果;而分号在JS中则代表1行语句的结束。
3. 标识符
标识符的规则
- 第一个字符可以是Unicode字母(包括但不限于英文字母,拉丁字母等都在这个编码中)/$ / _ /中文
- 后面的字符除了上面的内容还可以是数字 注:标识符第一个字符不能是数字!
4. 注释
JS的注释有两种:单行注释和多行注释
// 单行注释 ctrl+/
/* 内容多行注释 */ shift+alt+a
优秀的注释
- 分享开发过程踩坑的经验
- 开发过程中遇到的bug
- 特殊需求而出现的奇怪代码
5. 区块(代码块)block
用花括号{}把代码包在一起的内容叫做区块
{ let a = 1
let b = 2 }
区块常常与if / for / while合用
6. 语句
6.1 if语句
if....else...
语法:if(表达式){语句1}
else{语句2}
if代码块后面跟的else代码块,表示不满足条件时,所要执行的代码。
if (i===1) { // 满足条件时,执行的语句 } else { // 不满足条件时,执行的语句 } 上面代码判断变量i是否等于13,如果等于就执行if代码块,否则执行else代码块。
if表达式中不可以写作i=1 要写为i===1 因为一个=是赋值 用===进行判断。
对同一个变量进行多次判断时,多个if...else语句可以连写在一起。
if (m === 0) { // ... } else if (m === 1) { // ... } else if (m === 2) { // ... } else { // ... } else代码块总是与离自己最近的那个if语句配对。
if语句可以有多种嵌套方式
推荐的2种 if 语句写法
第一种
if (表达式) {
语句
} else if (表达式) {
语句
} else {
语句
}
第二种(次推荐)
function fn() {
if (表达式) {
return 表达式 }
if (表达式) {
return 表达式
}
return 表达式 }
6.2 switch语句
switch语句整体分4部分:switch部分,case部分(所有case),执行体部分(所有执行体),break。
switch执行顺序:
- 将switch部分中传入的变量和case部分的值进行比对
- 不相等则比对下一个case部分,直至匹配到相等的case,或switch语句全部结束。
- 相等则进入最近的执行体执行一系列的语句,直到遇到一个break
- 遇到break退出switch
switch (fruit) {
case 'banana':
console.log('banana')
break
case 'apple':
console.log('apple')
break
console.log('peach')
break
}
注:brank不可以省略
6.3 三元运算符
JavaScript的三元运算符: (条件)?表达式1 :表达式2 上面代码中,如果 条件 的值为 true,则返回 表达式1的值,否则返回 表达式2的值 例: var even = (n % 2 === 0) ? true : false; 如果 n可以被2整除,则 even等于 true,否则等于 false,和下面的代码等同。
var even; if ( n % === 0) { even = true; } else { even = false; } 这个三元运算符可以看作 if ... else的简写形式。
6.4 while循环
while语句包括一个循环条件和一段代码,只要条件为真,就会不断循环执行代码。一个 while语句的例子:
var i = 0; while(i < 100) { console.log('i 当前为:' + i); i = i+1; } 这一代码将会循环100次,直到i等于100为止。
6.5 for循环
for语句是循环命令的另一种形式,可以指定循环的起点、终点和终止条件。for语句后面的括号里有三个表达式:
初始化表达式(initialize):确定循环变量的初始值,只在循环开始时执行一次。 条件表达式(test):每轮循环开始时都执行这个表达式,只有值为真时,才继续循环。 递增表达式(increment):每轮循环的最后一个操作,通常用来递增循环变量。 例:
var x = 3; for(var i = 0; i < x; i++) { console.log(i); } 所有for循环都可以改写成 while循环。 for语句的三个部分可以省略任何一个,也可以全部省略。
6.6 break和continue语句
break 为退出所有循环,continue 为退出当前一次循环。
注意:嵌套情况下break 只退出离得最近的循环
6.7 标签 label
语句的前面有标签,相当于定位符,用于跳转到程序的任意位置。标签通常与 break 和 continue语句配合使用,跳出特定的循环。
语法
foo: { cosole.log(1); break foo; console.log('本行不会输出'); } console.log(2)
输出结果为1 2
foo,是个标签,表示花括号里的代码块,break foo跳出代码块,直接console.log(2)
通过 label 的这种语法,我们可以做到让多层循环内的最里层循环执行 break label来退出指定层循环。
注意:{foo: 1} 在浏览器中,这就是一个标签,里面的内容为 1。只有 var a = {foo: 1} 时,才是一个对象。