错误信息

语法错误

  1. 标识符名称(变量、函数名)不规范
  2. 对关键字赋值
  3. 基本语法错误,如分号打错

引用错误

  1. 变量、函数未声明
  2. 给无法赋值的对象赋值var a = 1 = 2

范围错误

  1. 数组长度为负数
  2. 方法参数超出可行范围toFixed(-1)

类型错误

  1. 调用不存在的方法
  2. new一个非构造函数的内容 var a = new 'String'

URIError

  • decodeURI()传非法参数
    URI 统一资源标识符 uniform resource indentified
    URN 统一资源名称 uniform resource name
    URL 统一资源定位符 uniform resource locator(URI+URN)
    浏览器会将地址转换为中文编码字符(有可能是UNICODE、GBK…)
encodeURI()
decodeURI()

EvalError

  • eval函数执行错误
  • json字符串、json对象中不能有方法
// eval 将json字符串转为对象
var arr = [{name: 'Leo',},{name: 'Krystal',},{name: 'Jessica',}
]
var jsonArr = JSON.stringify(arr)
console.log(jsonArr)
console.log(eval('(' + jsonArr + ')'))
console.log(eval(jsonArr))

不建议使用eval

  1. 语法规范混乱
  2. 断点调试不变
  3. 性能问题
  4. 代码压缩时可能会有意外的错误
  5. 容易引起XSS攻击
  6. 可读性差

错误

JS错误信息类型


try catch finally throw

手动抛出错误的方法

  • try的内容正常执行时,不走catch
  • 可能会错误的放try里,一定能执行的放finally里

  • JSON.parse()参数不能是空字符串或undefined,必须是JSON字符串
  • throw要写在可能会出错的代码段前, catch(e) 可以抛出自定义信息e
try {console.log('正常执行')if (jsonStr == '') {throw 'JSON字符串为空'}console.log(JSON.parse(jsonStr))} catch (e) {console.log(e) // JSON字符串为空
}

严格模式

ECMAScript

  • JavaScript语法规范
  • 97 1.0
  • 98 2.0
  • 99 3.0 JS通行标准
  • 07 4.0草案 激进 浏览器厂商不接受 只有Mozilla支持
  • 08 4.0中止 容易改善的版本放到3.0中 → 3.1 剩下4.0的部分 → Harmony未发布
  • 3.1更名为 ECMAScript5
  • 09 5.0 发布 Harmony = JS.next+ JS.next.next
  • 11 5.1 ISO国际标准
  • 13 ES6草案发布 = js.next ES7 = JS.next.next
  • 15 ES6正式发布,ECMAScript2015

ES5

  • 正常模式 严格模式
  • 启动严格模式:在脚本首行或函数体首行写use strict
  • with可以改变作用域(因此会消耗性能)
  • 严格模式不能使用withcallercallee
  • 严格模式下不能不写var
  • 严格模式下,函数内部fn使用this指向undefined,但new fn实例化返回的this还是指向实例
  • 严格模式下,函数参数不能重复
  • 严格模式下,对象的属性不能重复
  • 严格模式下,eval有自己的作用域,内部用var声明的变量不再是全局的
var a = 1;
var obj = {a: 2
}
function test(tScope) {var a = 3;with (tScope) {console.log(a)}
}
test(window) // 1
test(obj) // 2
test(test) // 3

  • 早期开发,设置命名空间,防止命名重复的方法

  • 多人协作完成一个js文件,模块化 → 命名空间不重复

    没区别啊

ES5-17/18 错误信息、try_catch、严格模式相关推荐

  1. 实例 18错误输出信息与调试信息

    package test;/*** @author 年浩**/ public class test {/*** @param args*/public static void main(String[ ...

  2. 【转】常见蓝屏错误信息

    ┌-┐ │ 1│ └-┘0x0000000A:IRQL_NOT_LESS_OR_EQUAL ◆错误分析:重要是由问题的驱动程序.出缺陷或不兼容的硬件与软件造成的. 从技术角度道. 标明在内核模式中存在 ...

  3. 如何对Windows 2000中出现的“Stop 0x0000007B”错误信息进行故障诊断 1

    本文说明了如何对在基于 Microsoft Windows 2000 的计算机上出现的"Stop 0x0000007B"错误信息进行故障诊断.在某些情况下,基于 Windows 2 ...

  4. KEIL软件错误代码及错误信息

    KEIL软件错误代码及错误信息 错误代码及错误信息 错误释义 error 1: Out of memory 内存溢出 error 2: Identifier expected 缺标识符 error 3 ...

  5. 电脑出现错误信息的故障排除

    1.出现TASKMON caused an invalid page fault in module KERNEL32.DLL (1)适用范围:Windows Me.Windows 98 (2)症状: ...

  6. 电脑各种中英文信息对照及错误信息总汇 系统出错信息及解决方案

    一.BIOS中的提示信息 提示信息       说明    Drive A error   驱动器A错误    System halt     系统挂起    Keyboard controller ...

  7. Partition Magic错误信息与解决方法

    Partition Magic错误信息与解决方法<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:of ...

  8. 后盾网lavarel视频项目---页面post方式提交之后动态弹出错误信息

    后盾网lavarel视频项目---页面post方式提交之后动态弹出错误信息 一.总结 一句话总结: 1.思路和我想的一样,有错误的时候弹出提示错误消息的模态框就好,没有错误的时候不管它 2.把模态框的 ...

  9. 最常见的20种VC++编译错误信息

    最常见的20种VC++编译错误信息 作者: 出处: blog 责任编辑:方舟 1.fatal error C1010: unexpected end of file while looking for ...

最新文章

  1. php 多个单选怎么办,【大神看过来】根据一个用PHP做的单选投票,改成多选,且可显示...
  2. 5whys分析法在美团工程师中的实践
  3. BCEWithLogitsLoss的使用案例
  4. Scylla——开源免费的优秀代理 IP 池:自动验证、JSON API、基于 React 的 Web UI、Docker 支持...
  5. 媒体应用大数据,先解决三大难题
  6. Python3实现红黑树[上篇]
  7. append在python里是什么意思_“一棵绿萝七个鬼”是什么意思?卧室里到底能不能养绿萝!...
  8. 移动Web加速技术月报第2期
  9. ReactNative简介、开发环境、调试、常用组件、useState状态、FlatList组件、SectionList组件、Platform 模块、定义样式、图片组件、触摸事件、打包apk发布版
  10. 作者:王雨华(1970-),男,中国科学院昆明植物研究所研究员、副所长
  11. pip工具可以打包python源代码吗_将python源文件打包成exe文件
  12. centos7 nat模式配置静态ip_KUKA机器人-配置Ethernet/IP总线为Adaper模式
  13. ZendGuard-5_0_1 使用备忘
  14. 当浏览器输入url的时候发生了什么
  15. 10分钟掌握运输问题(一)
  16. 扫雷游戏网页版_梦幻西游出网页版,王者出新英雄阿古朵,谁在杀死国产游戏的创新...
  17. git报错--RPC failed,curl 18 transfer closed with outstanding read data remaining
  18. 今日头条信息流 - 基础账户实操
  19. PCL1.9.1下载与配置+Visual Studio2017
  20. 单库单表到多库多表的全量复制方案

热门文章

  1. 入Java_初入Java的方法
  2. java中equals函数所在的类,重写Java中的equals方法介绍
  3. php与mysql列表_PHP+Mysql+jQuery实现的查询和列表框选择
  4. Java基础之GC回收
  5. Ubuntu15.04 64位安装Theano(已经测试可执行)
  6. Spring Boot Cache使用与整合
  7. python爬取豆瓣前25个影片内容的正则表达式练习
  8. 在微信浏览器字体被调大导致页面错乱的解决办法
  9. JavaWeb -- Session实例 -- 自动登录 和 防止表单重复提交(令牌产生器) MD5码
  10. HDU 1715 大菲波数 (大数问题)