JS语法

157 阅读3分钟
  • ES6ES2019差别不大

  • 一门语言的价值是由其产生的价值决定

  • js是世界上使用最广的语言

  • js是门槛极低的语言(只要你不学糟粕)

  • js是一门能产生价值的语言(虽然不美)

  • 它的优秀之处并非原创,它的原创之处并不优秀。

  • 程序员永远不要相信人类

  • 永远使用最没有歧义的写法


  1. 表达式
  • 1 + 2表达式的值为3
  • add(1,2)表达式的值为函数的返回值

    只有函数有返回值,值和返回值不同

  • console.log表达式的值为函数本身
  • console.log(3)表达式的值为多少?(undefined)
  1. 语句
  • var a = 1是一个语句
  1. 二者的区别
  • 表达式一般都有值,语句可能有也可能没有
  • 语句一般会改变环境(声明、赋值)
  • 上面两句话并不是绝对的

  • 大小写敏感
  • 大部分空格没有实际意义,回车大部分时候也不影响,只有一个地方不能加回车,就是return后面,如果其后面加上回车,会自动加上undefined

  1. 标识符
  • 规则:第一个字符,可以是Unicode字母$_或中文
  • 后面的字符,除了上面所说的还可以有数字
  • 变量名是标识符

var_ = 1

var$ = 2

var______ = 6

var 你好 = 'hi'

  1. 区块
  • 把代码包在一起
{
    let a = 1
    let b = 2
}

  • 常常与if/for/while合用
  1. if语句
  • 语法:

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

  • 变态情况
  • 表达式力可以非常变态,如a = 1
  • 语句1里可以非常变态,如嵌套的if else
  • 语句2里可以非常变态,如嵌套的if else
  • 缩紧也可以很变态,如面试题常常下套
a = 1
if(a === 2)
    console.log('a')
    console.log('a等于2')

逗号表示这句话没有完,分号表示这句话完了:

  1. switch语句
  • 语法:
switch (fruit) {
    case "banana":
        break;
    case "apple"
        break;
    default:
}

  • break:大部分时候省略break你就完了,少部分的时候可以利用break。
  1. 问好冒号表达式

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

  1. &&短路逻辑

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

如果前面为真,就取后面返回,如果前面为假,就取前面返回。

  1. || 短路逻辑

A || B || C || D 取第一个真值或D 并不会取true/false 若前面为真,就返回前面的值,如果前面为假,就返回后面的值

  1. while 循环
  • 语法while(表达式){语句}
  • 判断表达式的真假
  • 当表达式为真,执行语句,执行完再次判断表达式的真假
  • 当表达式为假,执行后面的语句
  • do...while用得不多,自行了解

由于浮点数的问题,造成死循环:

  1. for循环
  • 语法糖:for是while循环的方便写法
  • 语法: for(语句1;表达式2;语句三){循环体}
  • 先执行语句1,然后判断语句2。
  • 如果为真,执行循环体,然后执行语句3
  • 如果为假,直接退出循环,执行后面的语句

  1. breakcontinue:退出所有循环&退出当前一次循环
  2. label语句:用得很少,面试会考
  • 语法
foo:{   //foo是一个标签,表示后面的代码块
    console.log(1);
    break foo; //跳出foo代码块
    console.log('本行不会输出');
}
console.log(2);


{
    foo: 1
}
上面的东西是什么?

一个代码块(不是对象),代码块里有个标签foo,这个标签只有一行:1