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 pointString.fromCodePoint(’_’);
RangeError: invalid array lengthnew Array(Math.pow(2, 40))
RangeError: invalid date【chrome不报错,firefox报错】 new Date(‘2014-25-23’).toISOString();
RangeError: precision is out of range77.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

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251222.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新单词 part 4

part 41.veto 英[ˈvi:təʊ]美[ˈvi:toʊ]n. 行使否决权; 否决权&#xff0c;否认权; 否决理由;vt. 否决&#xff0c;不同意; 不批准&#xff0c;禁止;vi. 否决; 禁止;2.acoustics 英[əˈku:stɪks]美[əˈkustɪks]n. 声学; &#xff08;传声系统的&#xff09; 音响效果; 声…

unity深度查找某个子物体和遍历所有子物体方法

本文总结一下关于unity的查找子物体的方法 首先说明一下这里将讲三种查找子物体方法&#xff1a; 查找固定路径的某一个子物体的方法、通过名字深度查找某个子物体的方法、查找父物体下所有子物体的方法。 第一:查找固定路径的某一个子物体的方法 对于已知的路径可以直接用go.t…

javascript --- JSON字符串化

工具函数JSON.stringify()将JSON对象序列化为字符串时也用到了ToString. 看下面的代码: console.log(JSON.stringify(42)); console.log(JSON.stringify("42")); console.log(JSON.stringify(null)); console.log(JSON.stringify(true));所有安全的JSON值都可以使用…

静态链接和动态链接

静态链接和动态链接 静态链接方法&#xff1a;静态链接的时候&#xff0c;载入代码就会把程序会用到的动态代码或动态代码的地址确定下来 静态库的链接可以使用静态链接&#xff0c;动态链接库也可以使用这种方法链接导入库 动态链接方法&#xff1a;使用这种方式的程序并不在一…

ES5-3 循环、引用值初始、显示及隐式类型转换

1. 循环 for循环的三个参数abc&#xff0c;a只执行一次&#xff0c;c在每次循环后执行 // 打印0-100的质数 1不是质数 var list [2] for (var i 3; i < 100; i i 2) {var flag falsefor (var j 0; j < list.length; j) {var cur list[j]if (i % cur 0 &…

hihocoder 二分

题目 一个简单的二分&#xff0c;只是想说明一下&#xff0c;如若要查找一个数组中某个数的下标可以直接用lower_bound()这个函数。只是要考虑到要查找的数不在数组中的这种情况。 #include <cstdio> #include <iostream> #include <algorithm> using namesp…

ubuntu开启ssh服务

更新资源列表&#xff1a;sudo apt-get update -> 输入管理员密码 安装openssh-server: sudo apt-get install openssh-server 查看 ssh服务是否启动&#xff1a;sudo ps -e |grep ssh 启动ssh服务&#xff1a; sudo service ssh start 转载于:https://www.cnblogs.com/ver…

javascript --- 判断只有1个为真

下面写一个用于判断只有一个为真的函数: function onlyOne(a,b,c){return !!((a && !b && !c) ||(!a && b && !c) || (!a && !b && c)); } var a true; var b false;onlyOne(a,b,b) // true onlyOne(a,b,a); // false上述…

13 代码分割之import静动态导入

前端首屏优化方案之一 项目构建时会整体打包成一个bundle的JS文件&#xff0c;而有的代码、模块是加载时不需要的&#xff0c;需要分割出来单独形成一个文件块chunk&#xff08;不会打包在main里&#xff09;&#xff0c;让模块懒加载&#xff08;想加载时才加载&#xff09;&a…

2018.01.01(数字三角形,最长上升子序列等)

2017.12.24 简单的动态规划 1.数字三角形(算法引入) 题目描述&#xff1a;下图所示是一个数字三角形&#xff0c;其中三角形中的数值为正整数&#xff0c;现规定从最顶层往下走到最底层&#xff0c;每一步可沿左斜线向下或右斜线向下走。设三角形有n层&#xff0c;编程计算出从…

Mac iOS 允许从任何来源下载应用并打开

一个快捷的小知识点&#xff0c;mark&#xff01; 允许从任何来源下载应用并打开&#xff0c;不用手动去允许&#xff0c;更加简洁&#xff01; 只需一行命令 sudo spctl --master-disable 1.正常情况下&#xff0c;打开偏好设置&#xff0c;选择安全性与隐私&#xff0c;界面是…

ES5-4 函数基础与种类、形实参及映射、变量类型

模块编程原则&#xff1a;高内聚&#xff0c;低耦合&#xff08;重复部分少&#xff09;&#xff0c;让一个模块有强的功能性、高的独立性 → 单一责任制&#xff0c;用函数进行解耦合。 1. 函数命名规则 不能以数字开头可以以字母_$开头包含数字小驼峰命名法 函数声明一定有…

javascript --- 抽象相等

字符串和数字之间的相等比较 var a 42; var b "42";a b; // false a b; // trueES5规范11.9.3.4-5定义如下: (1)如果Type(x)是数字,Type(y)是字符串,则返回 x ToNumber(y) 的结果 (2)如果Type(x)是字符串,Type(x)是数字,则返回 ToNumber(x) y 的结果// 总结…

Spring加载context的几种方法

Spring中的context管理 Spring中IOC容器的初始化&#xff1a; ApplicationContext即是保存bean对象的容器&#xff0c;故容器本身的初始化&#xff0c;就是通过一系列的配置&#xff0c;将ApplicationContext进行初始化。 而配置ApplicationContext大方向上分为了3中&#xff1…

centos 6.5 配置网络

编辑 vi /etc/sysconfig/network-scripts/ifcfg-eth0修改内容 DEVICE"eth0" BOOTPROTO"static" HWADDR"00:50:56:98:06:D0" IPV6INIT"no" MTU"1500" NM_CONTROLLED"no" ONBOOT"yes" TYPE…

ES5-5 参数默认值、递归、预编译、暗示全局变量

1. 参数默认值 默认是undefined形参可以有默认值&#xff0c;形参、实参哪个有值取哪个ES6&#xff0c;默认值属于ES6的内容&#xff0c;打印出的是符合人性化的结果形参有默认值&#xff0c;形参、实参无法统一、无论实参传入有值还是undefined&#xff08;代码表现&#xff…

javascript --- 优先级执行顺序

优先级网址 优先级: a && b || c ? c || b ? a : c && b :a// 从优先级网址可以看出 // &&的优先级为:6 // ||的优先级为:5 // ...?...:...的优先级为:4 所以上面的执行顺序为(括号的优先级最高为20): ((a && b) || c) ? (c || b) ?…

CodeForces 1009B(思路)

本来打算打打cf找找自信的&#xff0c;结果&#xff0c;死在了一个2000多人都做出来的B上&#xff0c;写了170多行wr在t4&#xff0c;大佬十几行代码就过了&#xff0c;难受啊。 #include <iostream> #include <cstring> #include <algorithm> #include <…

Delphi及C++Builder经典图书一览表(持续更新中2018.01.02)

序号书名原版书名作者译者出版社页数年代定价备注1CBuilder 5程序设计大全CBuilder 5 Developer’s GuideJarrod Hollingworth康向东、汪浩、黄金才等机械工业出版社13932002.1138.00元2CBuilder应用开发大全Borland C Builder 3 UnleashedCharlie Calvert,et al.徐科、冯焱、吕…

javascript --- 非交互、交互、协作、任务

非交互: var res {};function foo(results) {res.foo results; }function bar(results) {res.bar results; }ajax( "http://some.url.1", foo); ajax( "http://some.url.2", bar);// foo和bar彼此不相关,谁先执行都无所谓..不影响执行结果交互: // 交…