JavaScript基本语法

201 阅读5分钟
本文主要讲述了:
  1. 什么是表达式和语句
  2. 标识符的规则
  3. if else 语句
  4. while for 语句
  5. break continue
  6. label

一、表达式与语句

1.表达式:
1 + 2;//表达式的值为3
add(1,2);//表达式的值为函数的返回值
console.log;//表达式的值为console.log
console.log(3);//表达式的值为console.log(3)的返回值-undefined
2.语句:
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
// 3
continue退出当前一次循环:
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教程