zoukankan      html  css  js  c++  java
  • JS错误信息类型

    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()方法
  • 相关阅读:
    Data Base mysql备份与恢复
    java 乱码问题解决方案
    【知识强化】第二章 物理层 2.1 通信基础
    【知识强化】第二章 进程管理 2.2 处理机调度
    【知识强化】第二章 进程管理 2.1 进程与线程
    【知识强化】第一章 操作系统概述 1.3 操作系统的运行环境
    【知识强化】第一章 网络体系结构 1.1 数据结构的基本概念
    【知识强化】第一章 网络体系结构 1.2 计算机网络体系结构与参考模型
    【知识强化】第一章 网络体系结构 1.1 计算机网络概述
    【知识强化】第一章 操作系统概述 1.1 操作系统的基本概念
  • 原文地址:https://www.cnblogs.com/easth/p/js_error_type.html
Copyright © 2011-2022 走看看