ECMA-262 定义了下列 7 种错误类型:

  1. TypeError 类型错误
  2. ReferenceError 引用错误
  3. SyntaxError 语法错误
  4. Error 错误
  5. EvalError 全局错误
  6. RangeError 参数错误
  7. URIError  编码错误

1.TypeError类型错误

当传入函数的操作数参数的类型并非操作符或函数所预期的类型时,将抛出一个 TypeError 类型错误。

例如:

/*
*  当尝试调用一个像方法的值时,这个值并不是一个方法
*/
var foo = undefined;
foo();   //Uncaught TypeError: foo is not a function

/*
*  当尝试调用一个对象的方法时,输错了名字,也会触发这个错误提示
*/

var x = document.getElementByID('foo');  //Uncaught TypeError: document.getElementByID is not a function
/*
*  尝试读取 null 或者 undefined ,把它当成了对象
*/
var someVal = null;
console.log(someVal.foo);

2.ReferenceError 引用错误

ReferenceError: Invalid left-hand side in assignment

例如:

/*
*  尝试给不能赋值的东西赋值,引起错误
*  “left-hand side in assignment” 提及了等号左手边的部分,因为左手边包含不能赋值的东西
*/
function doSomething(){};
if(doSomething() = 'somevalue'){};   

3.SyntaxError语法错误

Uncaught SyntaxError: Invalid or unexpected token

原因是数据有特殊字符或缺失部分特殊字符。

[ ] { } ( ) 这几个符号不配对常常导致出错。检查所有的圆括号和方括号是否配对。行号指出的不仅是问题字符。

Unexpected / 跟正则表达式有关。此时行号通常是正确的。

Unexpected ; 对象或者数组字面量里面有个;通常引起这个错误,或者函数调用的参数列表里有个分号。此时的行号通常也是正确的。

4.Error错误

Error 是基类型,其他错误类型都继承自该类型。因此,所有错误类型共享了一组相同的属性(错误对象中的方法全是默认的对象方法) 。 Error 类型的错误很少见,如果有也是浏览器抛出的,这个基类型的主要目的是供开发人员抛出自定义错误。

5.Unexpected token o in JSON at position 1

使用ajax返回结果时,如果结果还是对象,使用JSON.parse(),就会报错:JSON.parse() 方法用于将一个 JSON 字符串转换为对象。

因为结果已经是对象了,不能再使用JSON.parse转成对象了。

JSON.parse() 方法用于将一个 JSON 字符串转换为对象。

var res = JSON.parse(res)

JSON.stringfy() 方法用于将对象、数组转换成字符串

    var json_str1='{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}'                //json字符串
    var json_str2='{"name":"zhangsan","age":23,"email":"chentging@aliyun.com"}'   //json字符串
    console.log(typeof(json_str1))  //string
    console.log(typeof(json_str2))  //string

    var objct_json1=JSON.parse(json_str1)   //type object
    var objct_json2=JSON.parse(json_str2)   //type object
    console.log(objct_json1) //{1: 1, 2: 2, 3: {…}}
    console.log(objct_json2) //{name: "zhangsan", age: 23, email: "chentging@aliyun.com"}

javascript错误信息的更多相关文章

  1. 使用 Google Analytics 跟踪 JavaScript 错误

    Google Analytics(谷歌分析)不仅仅是一个流量统计工具,你还可以用它来测量广告活动的有效性,跟踪用户多远到所需的页面流(从点击广告到购物车到结账页面)获取,并基于用户的信息设置浏览器和语 ...

  2. JavaScript基础--小案例:在网页指定位置弹出错误信息(十二)

    案例分析:点击按钮后,在网页上指定区域,提示错误信息!5秒后,错误信息提示自动消失! <script languag="javascript" type="text ...

  3. document.domain - JavaScript的同源策略问题:错误信息:Permission denied to access property 'document'_eecc00_百度空间

    document.domain - JavaScript的同源策略问题:错误信息:Permission denied to access property 'document'_eecc00_百度空间 ...

  4. javascript 打印错误信息 catch err

    使用 console.log(err); 是无法打印出来的.默认只能打印出错误信息.如图 http.interceptors.response.use(response => { return ...

  5. JavaScript错误/异常处理

    JavaScript Try...Catch 语句 介绍:JavaScript中的try...carch语句的作用和C#中的try...catch语句的作用一样, 都是捕获并处理异常. 语法: try ...

  6. Visual Studio 2013中因SignalR的Browser Link引起的Javascript错误一则

    众所周知Visual Studio 2013中有一个由SignalR机制实现的Browser Link功能,意思是开发人员可以同时使用多个浏览器进行调试,当按下IDE中的Browser Link按钮后 ...

  7. javascript错误处理与调试(转)

    JavaScript 在错误处理调试上一直是它的软肋,如果脚本出错,给出的提示经常也让人摸不着头脑. ECMAScript 第 3 版为了解决这个问题引入了 try...catch 和 throw 语 ...

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

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

  9. 遍历ModelState中存储的错误信息

    在服务器端验证中,有时我们添加了一个ModelError,然后还需要将该信息以JS的形式返回到客户端.如: [HttpPost] public ActionResult Index(LogOnMode ...

随机推荐

  1. Oracle和Mysql获取uuid的方法对比

    场景:orm框架用mybatis,需要往数据库新增一条数据,用Oracle和mysql数据库分别需要怎么实现? mysql方法,用mysql提供的uuid函数 <insert id=" ...

  2. Linux 虚拟网络设备 veth-pair 详解,看这一篇就够了

    本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 前面这篇文章介 ...

  3. 深入Go的底层,带你走近一群有追求的人

    目录 缘起 自我介绍的技巧 硬核知识点 什么是plan9汇编 汇编角度看函数调用及返回过程 汇编角度看slice 正确参与Go夜读活动的方式 阅读原文 上周六晚上,我参加了"Go夜读&quo ...

  4. 4.2WebHost配置「深入浅出ASP.NET Core系列」

    希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. WebHost配置 覆盖配置文件和修改启动URL 覆盖配置文件和修改启动URL是经常使用的地方,覆盖配置文件可以自 ...

  5. Linux高级运维 第二章 Linux基本操作和自己动手组装服务器

    2.1  Linux网络相关概念和修改IP地址的方法 2.1.1  网卡的命名规则       Centos 6的网卡命名方式:它会根据情况有所改变而非唯一且固定,在CENTOS6之前,网络接口使用连 ...

  6. Linux下安装使用Redis

    cd /usr/local/src   //进入src目录  wget http://download.redis.io/releases/redis-4.0.1.tar.gz  //下载到src   ...

  7. 持续集成之 Spring Boot 实战篇

    本文作者: CODING 用户 - 何健 这次实战篇,我们借助「CODING 持续集成」,实现一个简单的 Spring Boot 项目从编码到最后部署的完整过程.本教程还有 B 站视频版,帮助读者更好 ...

  8. 2.5 Cesium视域分析的实现

    Cesium 视域分析 祝愿周末没事,技术继续分享交流,群685834990

  9. window模拟linux环境-cygwin安装

    cygwin是一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,非常有用.通过它,你就可以在不安装linux的情况 ...

  10. 【Android】用Cubism 2制作自己的Live2D——官方App样例源码学习(3)!

    ---恢复内容开始--- 前言- 虽然上文说的是model的绘制但是这个说法并不严谨,之前的几个例子都会有模型文件的读入和载入,可是在LAppRenderer.LAppView中并没有.moc等文件的 ...