JS 的基本语法

188 阅读3分钟

1-JS版本

历史版本

  • ES3,IE6支持,总体评价:垃圾
  • ES5,总体评价:还是垃圾
  • ES6,大部分浏览器支持,总体评价:一半垃圾,一半好
  • ES2019与ES6差别不大

为什么说ES6一半垃圾

  • 因为ES不能删除以前的特性,要兼容网站
  • 也就是说以前能运行的网站,以后都要能运行
  • 对比Python 3你就能知道兼容的好处:稳定

2-表达式、语句、标识符

表达式与语句

表达式

  • 1+1表达式的值为3
  • add(1,2)表达式的值为函数的返回值
  • console.log表达式的值为函数本身
  • console.log(3)表达式的值为underfired ,3只是它打印出来的东西

语句

var a=1是一个语句

二者的区别

  • 表达式一般都有值,语句可能有可能没有
  • 语句一般会改变环境
  • 上面两句话并不是绝对的

大小写敏感

不要写错

  • var a 与 var A是不同的
  • object 与Object是不同的
  • function 和Function是不同的

空格

大部分空格没有实际意义

  • var a =1 和var a=1没有区别
  • 加回车大部分时候也不影响
  • 只有一个地方不能加回车,那就是return后面

标识符

规则

  • 第一个字符,可以是Unicode字母 / $ /_ /中文

变量名是标识符

  • var_=1
  • var$= 2
  • var___=6
  • var 你好 ='hi'

注释的分类

不好的注释

  • 把代码翻译成中文
  • 过时的注释
  • 发泄不满的注释

好的注释

  • 踩坑注解
  • 为什么代码会写得这么奇怪,遇到什么bug

3-语句

if语法

  • if (表达式) {语句1} else{语句2}
  • {}在语句只有一句的时候可以省略,不建议这样做

变态情况

a=1
if(a ===2)  //如果a=2那就是赋值了
  console.log('a')
  console.log('a等于2')

使用最没有歧义的写法

最推荐使用的写法

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

switch语句

语法

switch(fruit){
    case: "banana";
    //...
    case:"apple";
    //...
    break;
    default:
    //...
}

break

  • 大部分时候,省略break你就完了
  • 少部分时候,可以利用break

问号冒号表达式

表达式1? 表达式2: 表达式3

function max(a,b){
    if(a>b) return a;
    else return b;
}
function max(a,b){
    return a>b? a:b
}

&&短路逻辑

A&&B&&C&&D取第一个假值/D并不会取true/false

||短路逻辑

A||B||C||D取第一个真值/D并不会取true/false

while语句

语法

  • while(表达式){语句}
  • 判断表达式的真假
  • 当表达式为真,执行语句
  • 当表达式为假,执行后面的语句
  • 执行完再次判断表达式的真假
var a =0.1  //初始化
while(a !==1){  //判断
   console.log(a) //循环体
   a = a +0.1; //增长
   }

for语句

语法糖

  • for是while循环的方便写法

语法

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

break 和continue

** 退出所有循环 vs 退出当前一次循环**

label

语法

foo:{
    console.log(1);
    break foo;
    console.log('本行不会输出');
}
console.log(2);

面试

{
    foo:1
}

答案: 1

推荐书籍:《网道 JavaScript 教程》、《你不知道的 JavaScript(上卷)》

「资料来源:©饥人谷」