目录

  • 1. 规范
  • 2. 错误
    • 2.1. 语法错误
    • 2.2. 引用错误
  • 3. 算数运算符
    • 3.1. 优先级
    • 3.2. + 加法
    • 3.3. / 除法
    • 3.4 % 取模
    • 3.3. 交换值
    • 3.4. ++、- - ⭐
  • 4. 比较运算符
    • 4.1. > < >= <= ⭐
    • 4.2. == ===
    • 4.3. != !==
  • 5. 判断分支
    • 5.1. if
    • 5.2. switch
    • 5.3. if、switch比较
  • 6. 逻辑运算符
    • 6.1. 真和假
    • 6.2. 与 &&
    • 6.3. 或 ||
    • 6.4. 非 !
  • 7. 注释
    • 7.1. 单行注释
    • 7.2. 多行注释
  • 8. 作业
    • 用户输入星期几,输入上午或下午,然后在页面上显示出相应的计划安排

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 6b = ++a + 1;
console.log(b, a); // 7 6b = a-- + --a;
console.log(b, a); // 8 3b = --a + --a;
console.log(b, a); // 7 3b = --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}`)

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

  1. ES5-2 语法、规范、错误、运算符、判断分支、注释

    1. 错误 MDN错误列表 Uncaught SyntaxError: Unexpected token ')' // 语法错误 Uncaught ReferenceError: a is not d ...

  2. [GO语言基础] 二.编译运行、语法规范、注释转义及API标准库知识普及

    作为网络安全初学者,会遇到采用Go语言开发的恶意样本.因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识:另一方面是分享与读者,希望大家一起进步.前文介绍了什么是GO语言 ...

  3. HTML(一、语法规范,二、结构标签,三、开发工具,四、HTML常用标签,五、注释和特殊字符)

    文章目录 前言 一.html语法规范 1. html基本语法规范 2. 标签关系 二.基本结构标签 1. 第一个 HTML 网页 2. 基本结构标签总结: 三.开发工具 1. vscode工具的创建工 ...

  4. Arduino语法详解,部分带注释(学习笔记)

    Arduino 的程序可以划分为三个主要部分:结构.变量(变量与常量).函数 函数部分参考官方:Arduino Reference - Arduino Reference 结构部分  一.结构 1.1 ...

  5. JSLint检测Javascript语法规范

    前端javascript代码编写中,有一个不错的工具叫JSLint,可以检查代码规范化,压缩JS,CSS等,但是他的语法规范检查个人觉得太"苛刻"了,会提示各种各样的问题修改建议, ...

  6. Java标识符命名规则,运算符,分支结构

    Java标识符命名规则,运算符,分支结构 1 Java标识符命名规则 1.1命名规则案例 163邮箱,注册邮箱名限制6~18个字符,可使用字母,数字,下划线,需要以字母开头命名规则分析1.有长度限制2 ...

  7. D05运算符和分支结构

    运算符和分支结构 1.运算符 1.1关系运算符 > < >= <= == != 关系运算符的结果有且只有 true or false 用于在开发中的条件判断使用 public ...

  8. 【编码经验】数据结构与语法规范、计算机算法、架构模式设计、代码重构

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 编码的三个层次 第一层:数据结构与语法规范层 0.clang-for ...

  9. Android.mk文件语法规范及使用模板 (转载)

    2019独角兽企业重金招聘Python工程师标准>>> http://blogold.chinaunix.net/u3/99423/showart_2206760.html Andr ...

最新文章

  1. 从Java类库看设计模式
  2. swift 通知中心 进入后台多久会通知用户关闭此功能
  3. 如何正确使用COCO数据集
  4. 微软WSUS服务器 3.0安装配置详解
  5. ML 04、模型评估与模型选择
  6. 想要成为JAVA高手的25个学习目标
  7. 在控制台中输出 出现SIGBAT或者EXC_BAD_ACCESS的原因的方法
  8. cudamemcpy运行速度很慢_只要设置好这几个选项,让你的 PS CC 2019 运行如飞
  9. 我在河南安阳拍摄的一个山村小孩儿
  10. python补充urllib教程,Python爬虫之urllib基础用法教程
  11. 矩池云conda创建指定cuda cudnn tf版本的虚拟环境
  12. [EasyHexo 专栏] #1 - Markdown 编辑器推荐与语法简介
  13. Go 性能优化技巧 7/10
  14. 【Linux】自主实现my_sleep【转】
  15. mysql怎么创建表可视化_MYSQL系列1_MySQL的安装,可视化工具的使用,以及建库建表等...
  16. python爬取网易云音乐视频_用Python爬取网易云音乐歌曲
  17. android 同屏 软件,同屏助手安卓版
  18. 58赶集基于 Docker 的自动化部署实践
  19. Exp6 信息搜集与漏洞扫描 20164302 王一帆
  20. SGU 264 Travel(稳定婚姻匹配)

热门文章

  1. 【GBase 8a MPP数据库集群】使用 AUTOFILL 关键字补齐缺失数据
  2. linux下网卡参数配置,linux网卡配置参数详解!
  3. 三星w系列vip服务器,三星最贵奢华手机来了!土豪专属
  4. PDF文件的数字签名的破解
  5. 小米mix2安兔兔html5跑分,【小米MIX2评测】性能:为发烧而生名副其实-中关村在线...
  6. Spring Boot 各Starter介绍
  7. Datatables基本初始化
  8. 5个面向开发人员的顶级报表工具
  9. VS Code用久了后,启动速度变慢
  10. aptx无损压缩,automotive应用的亮点