【JavaScript】语法

352 阅读3分钟

一、JS语言成分

JS特点

  • JS是大小写敏感
  • JS的原创之处并不优秀,JS的优秀之处并非原创
  • 只有函数有返回值
  • JS是大小写敏感

表达式和语句

区别

  • 表达式一般都有一个值,语句没有(极少数情况下有)
  • 语句一般会改变环境变量(声明、赋值)

表达式

  • 1 + 2 的值为3
  • add(1+2) 的值为该函数的返回值
  • console.log 的值为它本身,因为没有给它任何参数
  • console.log(3) 的值是它的返回值,即 undefined

语句

var a=1 是一个(声明)语句

标识符

规则

  1. 第一个字符可以是Unicode字母或$或_或中文
  2. 第二个及后面的字符还可以是数字

哪些是标识符?

  1. 变量名

注释

规则

  1. // 注释单行
  2. /**/ 注释多行

什么是好的注释?

  1. 防踩坑注释
  2. 代码写得奇怪,解释为什么这样写

区块

规则

把代码打包在一起

{
    let a = 1;
    let b = 2;
}

用法

常与if/for/while合用

二、条件判断

if 语句

规则

  1. if (表达式) {语句1} else {语句2}
  2. 若语句1只有一句,{}可以省略,因为{}默认只包含一句语句

举例

a = 1;
if(a === 2)
	console.log("a等于1")
    console.log("a等于2")

输出为“a等于2”,因为被省略的{}只包含第一个语句

最推荐的写法

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

次推荐的写法

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

switch 语句

举例

a = 1;
switch (a) {
	case 1:
    case 3:
    	console.log("a是单数");
        break;
    case 2:
    case 4:
    	console.log("a是双数");
        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;
}

&& 和 || 的短路逻辑

语法

  1. A && B && C && D 取第一个假值或D,并不会取true/false
  2. A || B || C || D 取第一个真值或D,并不会取true/false

三、循环

while 循环

语法

while (表达式) {语句}
判断表达式的真假,若真,执行语句,若假,执行后面的语句,执行完后再次判断表达式的真假

举例

var a = 0.1; //初始化
while(a !==1){ //判断
	console.log(a); //循环体
    a = a + 0.1; //增长
}

这是一个死循环,因为浮点数不是精准的,a永远不会等于1

for 循环

语法糖

for 循环是while 循环的简便写法

语法

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

执行顺序

  1. 语句1
  2. 表达式为真
  3. 循环体
  4. 语句2
  5. 表达式为真
    ...
  6. 表达式为假,跳出循环,执行后面的语句

举例

for(let i=1;i<5;i++){
	console.log(i);
}

打印出1,2,3,4

break 和 continue

break 跳出整个循环

for(var i=1;i<10;i++){
	if(i%2===1){
    	break;
    }
}

i等于1时跳出整个循环,break只会跳出离它最近的for循环

continue 跳过单次循环,不执行循环体

for(var i=1;i<10;i++){
	if(i%2===1){
    	continue;
    }else{
    	console.log(i)
    }
}

打印出0,2,4,6,8,如果i为单数,则跳过单次循环;若果i为偶数,则打印出i

四、label