JS的基本语法介绍

204 阅读4分钟

本文参考网道JavaScript教程

表达式和语句

js程序的执行单位为行,也就是自上而下的一行行执行,一般情况下,每一行即为一个语句,语句一般会改变环境并为完成某项任务进行的操作如:声明或赋值,例如:var a = 1;这就是一句语句.

表达式则是为了得到返回值的一种计算公式,例如1+2就是一个表达式,返回值为3,函数表达式的值为函数的返回值,如:console.log(3)的表达式的值为undefined,(注意:控制台打印出的3只是执行了上述语句的结果,若要看表达式的值应该看<后面的值是多少)console.log的值为函数本身

值的注意的是语句以分号结尾,一个分号就表示一个语句的结束,多语句可以写在一行 var a = 1;var b = 1;var a = 1,var b =1;两者不同,第一个是两个语句,第二个是一个语句

在JS语句中大部分情况下空格是没有实际意义的,比如var a = 1;var a=1;的执行结果是一样的,加回车大部分情况也一样,但是除了return后面是不能加回车的,否则系统会自动帮忙补充undefined

标识符的规则

标识符是用来识别各种值的合法名称,常见的为变量名或者函数名,但是值得注意的是,JS的标识符对大小写敏感,所以hiHI不一样,是两个标识符

标识符的命名规则:

  • 第一个字符可以是Unicode字母以及美元符号和下划线,比如:_hi $hi 你好 π
  • 第二个字符和以后的字符除了上述的符号外还可以添加数字0~9,比如_1 $5

if else 语句

if(表达式1){
    语句1;
}else{
    语句2;
}

只有在表达式1为真时可执行语句1,反之执行语句2,{}在只有一句话的时候可以省略,但是不建议容易引起混乱比如

由于省略了{}但是if只能包裹一句,所以第二个console.log仍然执行了 在if后面的表达式中要注意不要和赋值表达式混淆

由于if中的表达式是赋值语句所以不管之前a声明的是多少,最后a都会被赋值为2,所以解决此问题请在表达式中使用=== 此外if-else可以多个联合使用,但是else永远和最近的那个if一起配对

问号冒号表达式(三元表达式),&&逻辑和||逻辑

  • 三元表达式:表达式1?表达式2:表达式3,比如a>b?a:b若表达式1为真则取表达式2的值反之取表达式3的值
  • &&逻辑,他们的取值不是true或者false而是取表达式中的第一个假值,若都为真则取最后一个,例如if(a){b;}可以写成a&&b,即若a为真,则执行b
  • ||逻辑,则是选取表达式中的第一个真值或全为假,则取最后一个的值,例如if(!a){b;}可写为a||ba = a||100可表示为若a为真则,a=a,若a为假,则a=100

while for 语句

while(表达式){
    语句
}

若表达式为真,则执行while中循环体的语句,若表达式为假,则执行后面的语句 2.

for(语句1;表达式2;语句3){
    循环体
}

先执行语句1,然后判断表达式2,若为真,则执行循环体,然后执行语句3,若为假,则跳出循环

for(var i = 0;i<5;i++){
    console.log(i);
}
console.log('------------')
console.log(i)

可以看出最后i其实为5

break continue 区别介绍

  1. break是指的是退出当前的所有循环,若是两层嵌套循环,则退出离他最近的那个

由上图可以看出在i< 3的时候j的循环没有执行,跳出后仍在执行i的循环 2. continue指的是跳出此次循环,然后执行下一次循环

label介绍

语句的面前由一个label标签,相当于定位符,用于跳转程序的任意位置,格式为:

label:
语句

label可以为任意额标识符,除了保留字

原本break只能跳出内层循环,但是由于break后面接了一个label标签,结果直接全部跳出

由上面两个执行对比可以看出,若只是continue则,只是跳出一次内层循环,然后继续执行内层,若加上label,则跳出全部循环然后在执行