本文主要讲述了:
- 什么是表达式和语句
- 标识符的规则
- if else 语句
- while for 语句
- break continue
- label
一、表达式与语句
1.表达式:
1 + 2;//表达式的值为3
add(1,2);//表达式的值为函数的返回值
console.log;//表达式的值为console.log
console.log(3);//表达式的值为console.log(3)的返回值-undefined2.语句:
var a = 1; //这是一个语句二者的区别:
- 表达式一般都有值,语句可能又可能没有;
- 语句一般会改变环境(声明,赋值);
- 但以上两种情况不是绝对。
二、标识符的规则
1.标识符(identifier)指的是用来识别各种值的合法名称。最常见的标识符就是变量名,以及后面要提到的函数名。JavaScript 语言的标识符对大小写敏感,所以a和A是两个不同的标识符。
标识符有一套命名规则,不符合规则的即为非法标识符,JavaScript引擎遇到非法标识符就会报错。
命名规则如下:
- 第一个字符,可以是任意的Unicode字母,包括英文字母和其他语言的字母,以及美元符号和下划线。
- 第二个字符及后面的字符,可以用Unicode字母,美元符号和下划线,还可以用数字0-9。
- 中文是合法标识符,可以用作变量名
var _ = 1;
var $ = 2;
var _____ = 6;//最好不要这样使用,因为不好判断_的个数
var 你好 = 'hi';注:最好不要使用拼音作为变量名
2.大部分的空格没有实际意义,大部分的情况下加回车也没有影响,但是return后面不可加回车,会导致返回值为undefined。
3.注释
一般我们在写注释的时候,注释内容最好是采坑注释,以及解释自己的代码写的奇怪的地方,为什么这样写,写的时候遇到了甚么bug;不要写翻译代码的注释,过时的注释和发泄不满的注释,这都不是一个好的程序员应有的素养。
三、if else 语句
在解释if else之前要先讲讲区块block:
{
let a = 1;
let b= 2;
}
区块常常与if for while结合使用if语句
if(表达式){
语句一
}else{
语句二
}
//{}花括号在语句只有一句的时候,可以省略,但是一般情况下我们还是不要这么做举例:
a = 1;
if( a===2 )
console.log('a')
console.log('a等于2')
//结果为’a等于2‘
//代码相当于
if( a===2 ){
console.log('a')
}
console.log('a等于2')所以在带代码的时候要使用最没有歧义的写法:
//第一种
if(表达式){
语句
}else if(表达式){
语句
}else{
语句
}
//第二种
function fn(){
if(表达式){
return 表达式
}
if(表达式){
return 表达式
}
return 表达式
}其他可以用来代替if else的语句:
- switch语句(不要忘了写break)
- 三元表达式(表达式1?表达式2:表达式3)
- 短路逻辑&&(A&&B&&C&&D 取第一个假值或D)
- 短路逻辑||(A||B||C||D 去第一个真值或D)
四、while for语句
while(表达式){
语句
}for语句是循环命令的另一种形式,可以指定循环的起点,终点和终止条件。
for (初始化表达式; 条件; 递增表达式)
语句
// 或者
for (初始化表达式; 条件; 递增表达式) {
语句
}for语句后面的括号里面,有三个表达式。
- 初始化表达式(initialize):确定循环变量的初始值,只在循环开始时执行一次。
- 条件表达式(test):每轮循环开始时,都要执行这个条件表达式,只有值为真,才继续进行循环。
- 递增表达式(increment):每轮循环的最后一个操作,通常用来递增循环变量
例如:
var x = 3;
for (var i = 0; i < x; i++) {
console.log(i);
}
// 0
// 1
// 2上面代码中,初始化表达式是var i = 0,即初始化一个变量i;测试表达式是i < x,即只要i小于x,就会执行循环;递增表达式是i++,即每次循环结束后,i增大1。
所有for循环,都可以改写成while循环。上面的例子改为while循环,代码如下。
var x = 3;
var i = 0;
while (i < x) {
console.log(i);
i++;
}for语句的三个部分(initialize、test、increment),可以省略任何一个,也可以全部省略。
for ( ; ; ){
console.log('Hello World');
}上面代码省略了for语句表达式的三个部分,结果就导致了一个无限循环。
五、break 和 continue
break语句和continue语句都具有跳转作用,可以让代码不按既有的顺序执行。
break退出所有循环:
for (var i = 0; i < 5; i++) {
console.log(i);
if (i === 3)
break;
}
// 0
// 1
// 2
// 3continue退出当前一次循环:
var i = 0;
while (i < 100){
i++;
if (i % 2 === 0) continue;
console.log('i 当前为:' + i);
}六、label (标签)
JavaScript 语言允许,语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置,标签的格式如下。
label:
语句标签可以是任意的标识符,但不能是保留字,语句部分可以是任意语句。标签通常与break语句和continue语句配合使用,跳出特定的循环。
foo: {
console.log(1);
break foo;
console.log('本行不会输出');
}
console.log(2);
// 1
// 2上面代码执行到break foo,就会跳出区块。
文章参考:网道JavaScript教程