JS基础语法

132 阅读3分钟

JS基础语法

表达式与语句

表达式

1 + 2表达式的为3

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

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

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

语句

var a = 1是一个声明语句

两者的区别

  1. 表达式一般都有值,语句可能有也可能没有

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

上面两句话并不是绝对的

空格

大部分空格没有实际意义。

var a = 1var a=1没有区别。

加回车大部分时候也不影响,只有一个地方不能加回车,那就是return后面。

因为return后面不写东西会默认加上undefined

标识符

规则

第一个字符,可以是Unicode字符或$或_或中文。

后面的字符,除了上面所说,还可以有数字。

常见报错:Uncaught SyntaxError: Invalid or unexpected token,没有捕获的语法错误:不合法的或不符合预期的字符串。

变量名是标识符。

区块 block

把代码包在一起

{
    let a = 1
    let b = 2
}

if语句

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

使用最没有歧义的写法(程序员戒律)

最推荐使用的写法:

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

次推荐使用的写法:

function fn(){
    if (表达式) {
        return 表达式
    }
    if (表达式) {
        return 表达式
    }
    return 表达式
}

switch语句

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

大部分时候不能省略break,少部分时候可以利用break。

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

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

表达式1为true,执行表达式2

表达式1为false,执行表达式3

&&短路逻辑

A && B && C && D 取第一个假值或D

并不会取true/false

window.f1 && console.log('f1存在')

等效于

if (window.f1) {
    console.log('f1存在')
} 

||短路逻辑

A || B || C || D 取第一个真值或D

并不会取true/false

a = a || 100 //如果a存在,什么都不做,如果a不存在,a=100

等效于

if (a) {
    a = a //什么都不做
} else {
    a = 100 //保底值
}

while循环语句

while (表达式) {
    语句
}

判断表达式的真假,

当表达式为真,执行语句,执行完再判断表达式的真假

当表达式为假,执行后面的语句

for循环语句

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

先执行语句1

然后判断表达式2

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

如果为假,直接退出循环,执行后面的语句

变态案例:

for (var i = 0; i < 5; i++) {
    setTimeout(()=>{
       console.log(i); 
    },0)//这个语句代表过一会儿再执行console
}

输出结果为5个5

break和continue

break结束整个循环(只会退出离他最近的循环)

continue结束当前轮次循环,进入下一轮次

label标签

JavaScript 语言允许,语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置。

语法:

label:
  语句

举例:

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

上面代码执行到break foo,就会跳出区块。