JS的基本语法

131 阅读1分钟

一、什么是表达式

  • 1+2的表达式值为3

  • add(1,2)表达式的值为函数的返回值,只有函数有返回值

  • console.log表达式的值为函数本身

  • console.log(3)表达式的值为undefined

表达式与语句的区别

  • 表达式一般有值,语句没有

  • 语句一般会改变环境(声明、赋值)

二、标识符的规则

标识符是取名字时所用到的东西

规则
  • 第一个字符可以是 字母$_中文

  • 后面的字符除了上面所说还可以有数字,第一个字符不可以是数字

变量名是标识符
  • var a = 1

  • var $ = 1

  • var _ = 1

  • var 你好 = 1

  • var a111 = 1

三、if else 语句

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

如果(表达式)成立执行(语句1)否则执行(语句2)

  • {}在语句只有一句时可以省略,同时也代表只执行第一句!

  • a = 1 是错的 a === 1 是对的

  • 推荐使用的写法

if(表达式){
    语句
} else if(表达式){
    语句
} else{
  语句
}  

四、while for 语句

while循环(当...时)

语法

  • while(表达式){语句}

  • 判断表达式真假

  • 表达式为真,执行语句,再次判断表达式真假

  • 表达式为假,跳过,执行其它语句

var a = 1           输出内容为:1          
while(a<5){                    2
  console.log(a)               3
  a = a + 1                    4          结果:a=5 
}  

循环

var a = 0         //初始化              由于浮点数的存在
while(a !=== 1){  //判断a不等于1        导致a在加0.1时不准确,所以永远不等于1,从而无限循环
  console.log(a)  //循环体
  a = a + 0.1     //增长
}  
for循环

for是while循环的便捷写法

语法

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

  • 先执行语句1,然后判断表达式2

  • 如果为真,执行循环体,然后执行语句3

  • 如果为假,直接退出循环,执行其它语句

for( var a = 1;a<5;a++){      输出为:1      结果:a=5
    console.log(a)                   2
}                                    3  
                                     4

变态写法

for( var a = 1;a<5;a++){        输出为:5   结果:a=5    setTimeout意思为过一会在执行
    setTimeout(()=>{                   5                过一会a的值已经执行到5
    console.log(a)                     5                所以a4个值都为5
  }0)                                  5  
}                                     

:for循环在有let时会有专门的逻辑

五、break continue

break退出所有循环
for(var a = 0;a<10;a++){    
     if(a%2 === 1){           如果a除以21时
         break                则停止所有循环
     }
}                                          结果:a=1
continue退出当前一次循环
for( var a = 0;a<10;a++){
    if(a%2 === 1){            //如果a除以21时       输出为:2       结果:a=10
      continnue               //则停止当前一次循环            4
   }else{                     //否则                        6
           console.log(a)     //打印a                       8
   }
}

六、label

代码示范

foo:{                                                 输出为:1
  console.log(1);                                            2
  break foo;                 //break会使内容跳出循环
  console.log(本行不会输出);//所有这行不会打印
}
  console.log(2)

面试

        {                                            输出为:1
  foo:1        //代码块里面有一个标签,内容为1
}

七、补充内容

区块block

把代码包在一起,常常与 if / for / while 合用

{
cet a = 1
cet b = 2
}
问号冒号表达式
function max(a,b){
    return a>b ? a:b       //如果a>b返回a
}                          //    a<b返回b
短路逻辑

取第一个假值或最后一个真值

var a = 1
console && console.log && console.log(a=1存在)  
//前面的都存在才会打印 a=1存在
||短路逻辑

取第一个假值或最后一个真值

a = a || 100    //a存在则取a,不存在则取100