zoukankan      html  css  js  c++  java
  • 你不知道的JS系列 ( 4 ) - 作用域判别异常

    在变量还没有声明, LHS,RHS 两种查询的行为是不一样的
    function foo(a){
      console.log(a+b);
      b=a;
    }
    foo(2);
    第一次对 b 进行 RHS 查询时是无法找打该变量对,如果 RHS 查询在所有嵌套的作用域中遍寻不到所需的变量,引擎就会抛出 ReferenceError 异常
    当引擎执行 LHS 查询时,如果在全局作用域中也无法找到目标变量,全局作用域中就会创建一个具有该名称的变量
    如果 RHS 查询找到了一个变量,但是尝试对这个变量进行不合理对操作,比如试图对一个非函数类型对值进行函数调用,或者引用 null 或 undefined 类型对值中的属性,那么引擎会抛出 TypeError 异常。
    总结:ReferenceError 同作用域判别失败相关,而 TypeError 则代表作用域判别成功了,但是对结果操作是非法或不合理的
  • 相关阅读:
    MySQL快速入门
    关系模型
    从Qt到PyQt
    Qt 绘图与动画系统
    Django请求响应对象
    Django控制器
    Django模板
    第一个Django项目
    图的存储与遍历
    AOE网与AOV网
  • 原文地址:https://www.cnblogs.com/wzndkj/p/12306470.html
Copyright © 2011-2022 走看看