1.SyntaxError 语法错误

①变量名不规范

//  变量名不规范
var 1 = 1;

未被捕获的语法错误,这个错误是js机制自动抛出来的 意外的数字

//  下面两个是同一种情况
var 1a = 1;
function 1test(){}

无效或意外的标记

//  关键字赋值
new = 5;

意外的标记 =

下面最后加了冒号

//  基本的语法错误
var a = 5:

意外的标记 :


2.ReferenceError 引用错误

//  变量或者函数未被声明
test()

test没有被定义

//   给无法被赋值的对象赋值的时候
var a = 1 = 2
var a = 2;
console.log(a) = 3

无效的左侧赋值


3.RangeError 范围错误

//   数组长度为负数时
var arr = [1,2,3]
arr.length = -2

无效的数组长度

//  对象方法参数超出可行范围
var num = new Number(66.66);
console.log(num.toFixed(-1));

数字参数参数必须在0到100


4.TypeError 类型错误

//   调用不存在的方法
123()

123不管有没有定义 它都不是一个方法 根本就没有判断定义了没有,先判断类型,是不是属于一个function,如果是一个function 后面就可以跟括号

var obj = {};
obj.say();

并没有在obj里找到say这个方法,这个时候就会报这个错误 因为 点 后跟的是属性名但是带了括号,属性不可能像方法一样执行, 所以要看是不是方法,如果say不带括号就不会报错,不带括号时会认为是个属性但没有赋值

//  实例化原始值的问题
var a = new 'string';

new后面必须要是一个构造器 ,new一个原始值会报错 new后要跟函数 不管是构造函数还是普通函数,只要new函数 就会有实例化 'string' 不是函数就会报错

var a = new  123;

这个和上面情况一样,不是构造函数


5.URIError URI错误

URI 统一资源标识符 UNIFORM RESOURCE IDENTIFIER
URL 统一资源定位符 UNIFORM RESOURCE LOCATOR
URN 统一资源名称 UNIFORM RESOURCE NAME
URL和URN是URI的子集,属于URI
URL有协议有域名有资源空间 通过一个地址能访问到特定的页面
URN 没有了URL中的协议 相当于一个id 名字 指代了资源的唯一性 所以叫NAME
let str = "测试字符";
let encodeStr = encodeURI(str);
console.log(encodeStr); // %E6%B5%8B%E8%AF%95%E5%AD%97%E7%AC%A6
let decodeStr = decodeURI(encodeStr);
console.log(decodeStr); // 测试字符
上面是使用encodeURI方法把中文转为中文编码字符 是js内置的方法,
再使用decodeURI方法把中文编码字符转为中文,也是js内置的方法 ,接下来就随便输个中文编码 看能不能转成中文
let str = "%ef%erffv";
console.log(decodeURI(str));

URI不符合常规的


6.EvalError eval函数执行错误

现在很少见 因为很少使用eval方法 (不知道怎么让它报错)
es3开始 eval()函数不推荐使用,有性能问题, 难调试, input获取的值和eval混在一起可能会有安全隐患
eval()最大的作用是字符串里写js是可以执行的
eval("var a = 1;console.log(a)")

var obj = {
a:1,
b:2
}
console.log(eval("obj"));

打印的不是字符串obj,而是一个对象 换成 console.log(eval(obj)) 也是一样的

然而eval()方法最大的用处不是在这里
json字符串 使用eval()方法后会变成json对象
eval(jsonStr)
json是用来存储数据的,json字符串和json对象 里面不可以嵌有方法,如果里面写的有方法 就是一个普通的对象

这六种错误都可以人为的抛出
var error = new Error("代码错误了")
console.log(error);

会直接出来Error
人为的实例化一个错误 可以实例化构造函数
new SyntaxError("代码错误")
每一种错误类型都对应了一个构造函数,这些构造函数都可以通过实例化来输出响应的错误
如果想输出错误变成红色的 使用console.error()方法

JS错误信息类型的更多相关文章

  1. Chrome浏览器console控制台不打印任何js错误信息

    手欠在Chrome控制台在错误信息,右键:Hide messages from vue 看不到 报错信息 这里删除成 默认的Filter 报错就出现了

  2. flex 错误信息类型及解决方法

    总结一些经常出现的异常信息及处理方法(会一直持续更新): 异常1: 写actionscript3.0时遇到了错误.报错为:Error #2044: 未处理的 ioError:. text=Error ...

  3. 搭建前端监控系统(二)JS错误监控篇

    ===================================================================== 前端性能监控系统: DEMO地址    GIT代码仓库地址 ...

  4. Webfunny知识分享:JS错误监控

    现在的前端开发已不再是刀耕火种的年代了,各种框架.编译工具层出不穷,前端监控系统也不甘其后,遍地开花. 前端正承受着越来越重的职责,前端的业务也变得越来越复杂,此时此刻我们就更需要一套完善的监控系统来 ...

  5. 去除jquery.min.map 404错误信息

    调试中出现了 jquery.min.map 404 (Not Found) 的js错误信息: 那么jquery.min.map到底是个什么呢? JQuery 官方解释 从 jQuery 1.9.0 版 ...

  6. 编译器错误信息: CS0433: 类型“ASP.usercontrols_total_ascx”同时存在

    “/”应用程序中的服务器错误. 编译错误 说明: 在编译向该请求提供服务所需资源的过程中出现错误.请检查下列特定错误详细信息并适当地修改源代码. 编译器错误信息: CS0433: 类型“ASP.use ...

  7. jQuery Validate 表单验证插件----利用jquery.metadata.js将校验规则直接写在class属性里面并定义错误信息的提示

    一.下载依赖包 网盘下载:https://yunpan.cn/cryvgGGAQ3DSW  访问密码 f224 二. 添加一个另外一个插件jquery.metadata.js 并把校验规则写在控件里面 ...

  8. js收集错误信息,错误上报

    线上的代码可有有时候用户会反应不好使,一般是因为js造成的! 尤其在移动端各个手机之前的差异特别大. 下面这段代码是获取能帮助你! <script> window.onerror = fu ...

  9. ThinkPHP第八天(U函数放置在外部JS不会被解析,错误界面定制,错误信息变量)

    1.JS外部文件中U函数不会被解析,内部JS代码可以被解析. 2.halt. _404可以定制错误模板,在配置文件中配置 TMPL_EXCEPTION_FILE =>'./Public/Tpl/ ...

随机推荐

  1. Qt编写控件属性设计器6-动态属性

    一.前言 之前就提过,Qt的属性机制强大到爆,这次的动态属性功能就是要让他爆,很难想象只要一行代码即可widget->setProperty("value", value); ...

  2. 【转】Selenium-xpath详解

    1.XPATH是什么 XPATH是一门在XML文档中查找信息的语言,XPATH可用来在XML文档中对元素和属性进行遍历,主流的浏览器都支持XPATH,因为HTML页面在DOM中表示为XHTML文档.X ...

  3. PAT 甲级 1049 Counting Ones (30 分)(找规律,较难,想到了一点但没有深入考虑嫌麻烦)***

    1049 Counting Ones (30 分)   The task is simple: given any positive integer N, you are supposed to co ...

  4. python命令行参数解析OptionParser类用法实例

    python命令行参数解析OptionParser类用法实例 本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考. 具体代码如下:     from opt ...

  5. Python检查数组元素是否存在类似PHPisset()方法

    Python检查数组元素是否存在类似PHP isset()方法 sset方法来检查数组元素是否存在,在Python中无对应函数,在Python中一般可以通过异常来处理数组元素不存在的情况,而无须事先检 ...

  6. win10系统安装踩坑之路

    1.一定要下载win10原版镜像.如果用迅雷下载一定要校验文件hash值的完整性,可以用fhash.exe校验,如果哈希值不一致,一定要重新下载镜像. 2.用软媒U盘启动制作启动U盘 3.重启后按F1 ...

  7. 第十章 会话管理——《跟我学Shiro》

    转发地址:https://www.iteye.com/blog/jinnianshilongnian-2028675 目录贴:跟我学Shiro目录贴 Shiro提供了完整的企业级会话管理功能,不依赖于 ...

  8. MySQL的注入总结

    0x01 MySQL 5.0以上和MySQL 5.0以下版本的区别 MySQL5.0以上版本存在一个叫information_schema的数据库,它存储着数据库的所有信息,其中保存着关于MySQL服 ...

  9. thinkphp5 验证器 validate 和 layer

    首先tp5的验证器使用特方便 设置规则即可通用 首先页面html(layer 配合) 毕竟是后端 尽量用一些成熟的前台框架  之前用boostrap $.ajax({ url:'/index/Regi ...

  10. Linux 学习笔记 1 使用最小的系统,从分区安装系统开始

    我们常用的linux系统在安装过程中大多都省略了对系统进行分区的操作,以至于后期,不了解什么是分区以及分区当中最基本的一些概念, 我们不说最细的知识,只求了解这个过程,那直接步入正题,开始第一节的学习 ...