ES5-2 语法、规范、错误、运算符、判断分支、注释
1. 错误
MDN错误列表
Uncaught SyntaxError: Unexpected token ')' // 语法错误
Uncaught ReferenceError: a is not defined // 引用错误等类型
Uncaught TypeError: Cannot read property 'toString' of null
出现一个语法错误,则一行代码都不会执行(检查通篇的语法错误,全部正确才执行)
出现引用错误,则中断错误处及之后的代码
html内写脚本,脚本代码块之间互不影响,无论其中一个脚本报语法错误还是通用错误
中断之后执行
1. //
2. //
3. //
错误类型 | 表现 |
---|---|
RangeError: argument is not a valid code point | String.fromCodePoint(’_’); |
RangeError: invalid array length | new Array(Math.pow(2, 40)) |
RangeError: invalid date | 【chrome不报错,firefox报错】 new Date(‘2014-25-23’).toISOString(); |
RangeError: precision is out of range | 77.1234.toExponential(-1); |
RangeError: radix must be an integer | (42).toString(0); |
RangeError: repeat count must be less than infinity | ‘abc’.repeat(Infinity); |
RangeError: repeat count must be non-negative | ‘abc’.repeat(-1); // RangeError |
- 数字后跟
.
会引起歧义,不知道是小数点还是调用,报语法错误
2. 运算
怎么得到正负无穷,NaN
怎么得到数字最后一位,最后两位
+0 -0 相等/全等吗
- 0 / 0 得到
NaN
是number类型(NaN
与包括自己在内的任何东西都不相等) - 1 / 0 得到
Infinity
是number类型 - -1 / 0 得到
-Infinity
是number类型 - 正负无穷互不相等更不全等
- 4 % 6得到
4
,取模a<b时,结果为a取小的 - 数字
%
10能得到最后一位,%
100得到最后两位 - 一个诡异的问题, 这段代码不加分号会报错
let [a, b] = [1, 2];
console.log(a, b); // 1 2
[b, a] = [a, b];
console.log(a, b);
- 交换值
- ES6匹配
let x = 1;let y = 2;[x, y] = [y, x]console.log(x, y) // 2, 1
,
是运算符,只返回最后一个
++在后面:先打印后运算(打印的时候/参与运算的时候还没有赋值)
++在前面:先运算赋值后打印
这个注意下
字符串之间比较,从各自首位开始查找ASCII码(.也能查找到对应的十进制代码)
.的ASCII码比阿拉伯数字小
3. 判断分支
- 如果条件间是互斥的,使用
if - else if
,这样比起罗列所有的if(假设if内没有return),能减少走多余的分支 - switch如果没写break,则不能中断查询,还会走查到后的分支
- 一般判断结果是多个定值的用switch,判断条件有多个语句的用if
4. 逻辑运算
- 一定是假(6个):
0
''
NaN
null
false
undefined
- 除上述以外一定是真
- 通过逻辑运算推导if语句里条件满足的判断
&&
遇到真就往后走,遇到假就返回,都没有假则返回最后一个真的值||
遇到假就往后走,遇到真就返回,都没有真则返回最后一个假的值
var a = 1 && 2
console.log(a) // 2
var a = 1 || 2
console.log(a) // 1
ES5-2 语法、规范、错误、运算符、判断分支、注释相关推荐
- 【ECMAScript】语法、规范、错误、运算符、判断分支、注释
目录 1. 规范 2. 错误 2.1. 语法错误 2.2. 引用错误 3. 算数运算符 3.1. 优先级 3.2. + 加法 3.3. / 除法 3.4 % 取模 3.3. 交换值 3.4. ++.- ...
- JSLint检测Javascript语法规范
前端javascript代码编写中,有一个不错的工具叫JSLint,可以检查代码规范化,压缩JS,CSS等,但是他的语法规范检查个人觉得太"苛刻"了,会提示各种各样的问题修改建议, ...
- Java标识符命名规则,运算符,分支结构
Java标识符命名规则,运算符,分支结构 1 Java标识符命名规则 1.1命名规则案例 163邮箱,注册邮箱名限制6~18个字符,可使用字母,数字,下划线,需要以字母开头命名规则分析1.有长度限制2 ...
- D05运算符和分支结构
运算符和分支结构 1.运算符 1.1关系运算符 > < >= <= == != 关系运算符的结果有且只有 true or false 用于在开发中的条件判断使用 public ...
- [GO语言基础] 二.编译运行、语法规范、注释转义及API标准库知识普及
作为网络安全初学者,会遇到采用Go语言开发的恶意样本.因此从今天开始从零讲解Golang编程语言,一方面是督促自己不断前行且学习新知识:另一方面是分享与读者,希望大家一起进步.前文介绍了什么是GO语言 ...
- Power BI 之 DAX语法规范详解1
文章预览: Power BI 之 DAX语法规范详解 1 前言 表构造函数{()} Lookupvalue函数 Related函数: Relatedtable函数 筛选引擎Calculate 单条件筛 ...
- 【编码经验】数据结构与语法规范、计算机算法、架构模式设计、代码重构
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 编码的三个层次 第一层:数据结构与语法规范层 0.clang-for ...
- Android.mk文件语法规范及使用模板 (转载)
2019独角兽企业重金招聘Python工程师标准>>> http://blogold.chinaunix.net/u3/99423/showart_2206760.html Andr ...
- oracle 条件查询,比较运算符,逻辑运算符,特殊运算符,判断空值,大小写敏感,多行,多列子查询...
oracle 条件查询,比较运算符,逻辑运算符,特殊运算符,判断空值,大小写敏感,多行,多列子查询博客分类: oracle OracleSQL 比较运算符 >,<:大于,小于 >=. ...
最新文章
- styleable cannot be resolved or is not a field
- Golang中的panic和recover(捕获异常)
- 末学者daylight__Linux磁盘管理及LVM
- Windows10下使用darknet和YOLOV3训练自己的数据集
- 命令执行顺序控制与管道
- ZJOI 2017 线段树
- ssm(springMVC + spring+MyBatis) 小例
- requests 返回的cookies为空_爬虫学习(2)(requests库)
- android 渠道打包工具,Android渠道打包技术小结
- 美国会不会禁用python_美国要是禁用Windows系统,该怎么办?国人会不会选择换系统呢?...
- 在js中实现邮箱格式的验证
- js将long日期格式转换为标准日期格式
- android swf游戏下载工具,swf游戏模拟器高级版下载
- 任正非:华为留不住人才是我的痛!
- 2018/7/31-zznu-oj-问题 F: 手机密码--【裸dfs+for循环即可!——据说三个小时内只有两个人读完了题意并轻松AC了】...
- Metso定位器的参数及调试步骤
- 面试官:设计模式是什么?
- MFC中VC6.0工程项目中文乱码的显示处理
- python matplotlibmat 包mplot3d工具 三维视图透视取消
- selenium中添加cookies的方法 python
热门文章
- pid调节软件_非常实用的PID算法和PID控制原理
- date oracle 显示毫秒_Oracle date timestamp 毫秒 - 时间函数总结
- python函数返回none_Python 函数默认返回None的原因
- 程序员如何跟领导提离职_如何优雅地跟老板提加薪?按照这3个步骤来,也不是什么难事...
- 没有体现JAVA接口功能_深入浅出分析Java抽象类和接口【功能,定义,用法,区别】...
- matlab padarray函数详解
- 【theano-windows】学习笔记十四——堆叠去噪自编码器
- spark-streaming first insight
- LeetCode:二叉树相关应用
- 读书笔记之《The Art of Readable Code》Part 2