zoukankan      html  css  js  c++  java
  • 作用域与作用域链:作用域 作用域与执行上下文 作用域链 测试题

    作用域

    1.理解

    就是一块"地盘",一个代码段所在的区域
    它是静态的(相对于上下文对象),在编写代码时就确定了

    2.分类

    (1)全局作用域
    (2)函数作用域
    (3)没有块作用域(ES6有了)

    3.作用

    隔离变量,不同作用域下同名变量不会有冲突

    作用域与执行上下文

    1.区别1

    全局作用域之外,每个函数都会创建自己的作用域,作用域在函数定义时就已经确定,而不是在函数调用时。
    全局执行上下文环境是在全局作用域确定之后,js代码马上执行之前创建
    函数执行上下文是在调用函数时,函数体代码执行之前创建

    2.区别2

    作用域是静态的,只要函数定义好了就一直存在,且不会再变化
    执行上下文是动态的,调用函数时创建,函数调用结束时就会自动释放

    3.联系

    执行上下文(对象)是从属于所在的作用域
    全局执行上下文 ----> 全局作用域
    函数执行上下文 ----> 对应的函数作用域

    作用域链

    1..理解

    嵌套的作用域由内向外的一个结构
    查找变量时就是沿着作用域链来查找的

    2.查找一个变量的查找规则

    (1)在当前作用域下的执行上下文中查找对应的属性,如果有直接返回,否则进入(2)
    (2)在上一级作用域的执行上下文中查找对应的属性,如果有直接返回,否则进入(3)
    (3)再次执行(2)的相同操作,直到全局作用域,如果还找不到就抛出找不到的异常

    测试题

    测试题1

     

    测试题2

     

    测试题3

    怎样找到a.b,先找作用域链找到a对象,再找原型链找a的属性b,第一个找不到就报错,第二个找不到就返回undefined

    学识浅薄,如有错误,恳请斧正,在下不胜感激。

  • 相关阅读:
    jmeter非GUI模式命令
    jmeter性能测试--浪涌测试
    性能测试之场景设计
    性能测试用例实例
    jmeter常见错误及解决方法
    .NET中变量生存期
    SQL数据库从高版本导入低版本
    对称子字符串
    回溯法求解全排列问题(可去除重复排列)
    快速排序及快速选择问题
  • 原文地址:https://www.cnblogs.com/yin-jie/p/14751162.html
Copyright © 2011-2022 走看看