JS 的基本语法

63 阅读3分钟

1. 表达式和语句

表达式

  • 1 + 2 就是表达式,它一般有值

  • fn(x, y) 一个函数表达式的值是该函数的返回值

  • 举例:

    • console.log的值为这个函数本身
    • 而console.log(1)的值是多少呢?答案不是1,也不是函数本身,而是undefined JavaScript中函数没规定返回值时,默认返回值是undefined

语句

  • let x = 1 + 2 就是一个语句,它可以给变量赋值

语句与表达式的区别:

  • 表达式一般都有值,而语句不一定
  • 语句是用来改变环境的(声明、赋值)

注意,JS中大小写很敏感,变量名,函数名,大小写是不一样的,注意区分

2. 标识符的规则

命名规则:

JS的标识符命名规则可以说是非常宽松了。第一个字符可以是 Unicode 字母或美刀 $ 或 _ 甚至是中文。

第二个字符开始,还可以有数字,记住数字不能打头即可。

let $ = 1 合法√

let _ = 1 合法√

let ___ = 1 合法√

let 张三 = 1 合法√

let _______________ = 1 合法√ 但会被同事骂死

区块可以说是JS语言中的重要概念,使用大括号,将多个相关的语句组合在一起,就称为“区块”(block)。一个区块就构成了一个单独的作用域。区块往往用来构成其他更复杂的语句或结构,比如ifwhileforfunction等。

条件语句

&&:与

||:或

A&&B: A与B同时成立则为true

A||B: A或B有有一个成立则为true

A&&B&&C&&D:返回第一个false值或者D A||B||C||D:返回第一个True值或者D

注释

不要写过多翻译代码的注释,不利于突出注释中的重点;

易踩坑处,奇怪的代码处宜写注释;

3. if else 语句

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

需要注意的是,虽然{}在只有一句的情况下可以忽略,不过不建议这么做,会降低代码可读性。

不看常态看变态:

  • 条件表达式里可以放奇怪的东西,如 a = 1,它被认为是true,所以可以执行
  • if,else里都可以无限嵌套if else
  • 缩进也可以很坑,面试题里常常下套让你钻(if后不加{}容易带来混淆,所以为什么建议加上)
a = 1
if(a === 2)
  console.log('a')
  console.log('a=2')
复制代码

程序猿圣经————使用最没有歧义的写法

if (表达式) {
语句1
} else if{
语句2
} else {
语句3
}
复制代码

三元表达式(问好冒号表达式)

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

这是if else语句一种特殊的简写方法。

4. while for 语句

while while(表达式) {循环体}

执行逻辑是,先判定表达式的true或false,如果true,那么执行循环体语句,执行完继续判定是否为true...

直到表达式为false时,跳过{}中的语句,执行后面的代码。

所以很容易看出来,非常容易写出死循环,要万分注意!

do while语句非常类似的,只是它先做一遍do,再去判定表达式的布尔值。

for

for循环可以用while循环来实现,但是它是一种非常方便且几乎最常用的循环写法。

for(语句1;表达式;语句3) {
循环体
}
复制代码

如for(let i = 1; i < 11; i++) {} 非常容易实现遍历等等

5. break continue

这两个是用在循环体语句中的,分别表示:

break 退出所有循环 / continue 退出当前这一次循环

6. label

实际工作用的非常之少,但是算是知识点,面试可能会考到。

point(标识符): {
    console.log('hi');
    break point;
    console.log('本行不会输出');
}
复制代码

面试继续下套:

{
  foo: 1
}
复制代码

这是什么?是一个对象Object么?错误

它是一个 {} 包起来的 block ,里面有个 label 名字叫 foo,标记的语句块就是1。

实际工作中这么写要被人打死,就是专门用来应试下套的。需要多多注意语法中这些大坑。

参考文章:juejin.cn/post/707336…