【ECMAScript】语法、规范、错误、运算符、判断分支、注释

1. 规范

  1. 语句结束用 ;

    js 引擎是以 ; 分割语句的,如果没有加,会自动给你加上

  2. 符号的两边都有空格,比如:c = a + b;

2. 错误

在JS中错误分为两大类:语法错误,通用错误

2.1. 语法错误

语法错误 Uncaught SyntaxError,通篇的代码都不会执行

console.log(1);
console.log(2)// 这里分号写成了中文的分号,语法错误,通篇的代码都不执行
console.log(3);

2.2. 引用错误

引用错误 Uncaught ReferenceError,错误之前的代码会执行,之后的代码不会执行

console.log(1);
console.log(a);
console.log(2);
// 输出 1
// 然后 报 a 的引用错误,之后的不执行

提示:多个脚本是相互独立的,其中一个报错不会影响另一个的执行

3. 算数运算符

运算符包括 + - * / % ()

3.1. 优先级

括号运算 > 普通运算 > 赋值

var a = 1,
    b = 2,
    d = 3;
var c = (a + b) * d;
// 计算机执行过程:
// 1. 声明变量c   
// 2. a的值和b的值相加,与d相乘得到结果    
// 3. 将值赋值给变量c

3.2. + 加法

用法

  1. 数学运算
  2. 字符串拼接 -> 任何数据类型 + 字符串 都是字符串
var a = 1,
    b = 2,
    c;
c = a + b; // 3
c = 1 + "str"; // 1str
c = "str" + undefined; // strundefined

3.3. / 除法

console.log(0 / 0);  // NaN → not a number 非数 -> 数字类型
console.log(1 / 0);  //infinity 正无穷 -> 数字类型
console.log(-1 / 0);  //-infinity 负无穷 -> 数字类型

提示:NaN、infinity是数字类型

3.4 % 取模

console.log(5 % 3); // 2
console.log(0 % 6); // 0

3.3. 交换值

交换 a, b 的值

// 方法一
var a = 1,
    b = 2;
var c = a,
    a = b,
    b = c;

// 方法二  
a = a + b; 
b = a – b;
a = a – b; 

// 方法三
[a, b] = [b, a]

3.4. ++、- - ⭐

a++和++a的区别

var a = 1;
console.log(a++)  // 1 先执行后运算 -> --同理
console.log(++a)  // 2 先运算后执行 -> --同理

下面打印什么?

var a = 5,
    b;
    
b = a++ + 1;
console.log(b, a); // 6 6

b = ++a + 1;
console.log(b, a); // 7 6

b = a-- + --a;
console.log(b, a); // 8 3

b = --a + --a;
console.log(b, a); // 7 3

b = --a + a++;
console.log(b, a); // 8 5

4. 比较运算符

比较运算符包括: > < >= <= == === != !==

4.1. > < >= <= ⭐

number 比较 string, string 先转换为 number 再比较

console.log(1 > '2'); // false

string 比较 string,则比较字符串相对应的ASCII码(字符相对应的十进制代码)

多个字符的,从左到右依次对比,直到比较出码的大小为止

console.log('4.5' > '11'); // true  

4.2. == ===

相等是不看数据类型

全等是需要看数据类型是否相等

console.log(1 == "1"); // true
console.log(1 === "1"); // false

4.3. != !==

NaN 与包括自己在内的任何东西都不相等

console.log(NaN !== NaN); // true

在这里插入图片描述

在这里插入图片描述

5. 判断分支

5.1. if

  1. 在条件中

    && 就是并且,&& 两边都必须满足条件即可

    || 就是或者,|| 两边有一边满足条件即可

  2. 条件:互斥性

    互斥相的条件一定不能分开写

    // 查询成绩等级
    if (score >= 90 && score <= 100) {
        console.log('您的成绩为A')
    } else if (score >= 80 && score < 90) {
        console.log('您的成绩为B')
    } else if (score >= 70 && score < 80) {
        console.log('您的成绩为C')
    } else if (score >= 60 && score < 70) {
        console.log('您的成绩为D')
    } else if (score < 60 && score >= 0) {
        console.log('您的成绩不及格')
    } else {
        console.log('您的成绩出现异常')
    }
    // 满足条件就停止
    

5.2. switch

  1. 基本形式

    switch (变量) {
        case :
            语句;
            break;      //中断语句
        default:
            语句;
    }
    
  2. 示例

    var city = window.prompt('请输入您所在的地区');
    console.log(city);
    
    switch(city) {
      case '北京':
        console.log('15k');
        break;
      case '上海':
        console.log('13k');
        break;
      default:
        console.log('9k');
    }
    
  3. 利用switch变换为if

    switch(true):{  // 这里一定要填布尔值 -> true 正常执行 false 走第一个 非bool 走default 
        case c >= 90 && c <= 100:
        ...
        break;
    }
    

5.3. if、switch比较

定值 -> 用switch
范围 -> 用if

6. 逻辑运算符

逻辑运算符包括: 与&& 或|| 非!

6.1. 真和假

undefined,null,NaN,“”,0,false 为假,其它值都是真。

6.2. 与 &&

遇到真就往后走,遇到假或走到最后就返回当前的值

var a = 1 && 2; console.log(a);  // 2

// 1 && 1  返回1  真 
// 0 && 1  返回0  假    
// 1 && 0  返回0  假
// 0 && 0  返回0  假 
// if (… && …) {}  if条件里的逻辑运算符就是这样执行的

6.3. 或 ||

遇到假就往后走,遇到真或走到最后就返回当前的值

var b = 1 || 2; console.log(b); // 1
var b = 0 || null || 1 || 0; console.log(b);  // 1

// 遇到假就往后走,遇到真或走到最后就返回当前的值
// 1 || 1  返回1  真 
// 0 || 1  返回1  真    
// 1 || 0  返回1  真
// 0 || 0  返回0  假 
// if (… || …) {}

作用

var name = '';
console.log(name || "未找到数据") 

a.onclick = function (e) { 
    var event = e || window.event; // IE e -> window.event
}

6.4. 非 !

取反

console.log(!1); // false

7. 注释

7.1. 单行注释

// 行注释 

7.2. 多行注释

/*
 * 块注释
 */

8. 作业

用户输入星期几,输入上午或下午,然后在页面上显示出相应的计划安排

var day = window.prompt("请填写星期几");
var time = window.prompt("选择上午或下午");
var plan;
if (time === '上午') {
    switch (day) {
        case '星期一':
            plan = '看电影'
            break;
        case '星期二':
            plan = '逛街'
            break;
        case '星期三':
            plan = '看书'
            break;
        case '星期四':
            plan = '健身'
            break;
        case '星期五':
            plan = '玩游戏'
            break;
        case '星期六':
            plan = '弹吉他'
            break;
        case '星期日':
            plan = '练瑜伽'
            break;
        default:
            plan = '输入的值不正确'
            break;
    }
} else if (time === '下午') {
    switch (day) {
        case '星期一':
            plan = '去买菜'
            break;
        case '星期二':
            plan = '去游泳'
            break;
        case '星期三':
            plan = '考驾照'
            break;
        case '星期四':
            plan = '上网课'
            break;
        case '星期五':
            plan = '去爬山'
            break;
        case '星期六':
            plan = '去滑冰'
            break;
        case '星期日':
            plan = '去博物馆'
            break;
        default:
            plan = '输入的值不正确'
            break;
    }
} else {
    plan = '输入的值不正确'
}
document.write(`${day}${time}的安排:${plan}`)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值