10.11.JS-try...catch,es5标准模式

676 阅读1分钟

try...catch

  • try{}catch(e){}finally{}
  • Error.name的六种值对应的信息:
      1. EvalError:eval()的使用与定义不一致
      1. RangeError:数值越界
      1. ReferenceError: 非法或不能识别的引用数值
      1. SyntaxError: 发生语法解析错误
      1. TypeError: 操作数类型错误
      1. URIError: URI处理函数使用不当

es5严格模式

  • "use strict"
    • 不再兼容es3的一些不规则语法。使用全新的es5规范,使用时必须在代码执行的头部
    • 两种用法:
      • 全局严格模式
      • 局部函数内严格模式(推荐)
    • 使用字符串原因:不会对不兼容严格模式的浏览器产生影响,向前兼容
    • 不支持with, arguments.callee, func.caller,变量赋值前必须声明,局部this必须被赋值(Person.call(null/undefined)赋值什么就是什么),拒绝重复属性和参数
  • with和命名空间结合使用,在es5严格模式下禁止使用
// 使用with会添加一次作用域
var obj = {
  name: 'obj',
}
var name = 'window';
function test() {
  var name = 'scope';
  var age = 123;
  with (obj) {
    console.log(name); // "obj"
    console.log(age); // 123
  }
}
test();