发表于: 2020-03-29 16:11:06

0 1834


今天完成的事情:

明天计划的事情:

遇到的问题:

收获:

关于作用域变量的查找机制:

函数在当前作用域中无法找到某个变量时,js引擎就会在外层嵌套的作用域中进行查找,直到找到该变量或者抵达最外层作用域(一般是全局作用域)为止。

而对象的成员(继承的属性和方法是实例成员,实例或者构造函数只可通过自身的来操作的叫静态成员)查找机制

则是通过原型链去查找:

每个对象都有一个proto属性指向自己的原型对象prototype如果在这个对象的原型上找不到自己在搜索的属性或者方法








什么是执行环境?

执行环境(execution context,为简单起见,有时也称为“环境”)是JavaScript

中最为重要的一个概念。执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为。——《JavaScript高级程序设计(第3版)》

什么是作用域呢?

每个函数都有自己的执行环境,当代码在执行环境中执行时,就会创建变量对象的作用域链。作用域链保证了对执行环境有权访问所有变量和函数的有序访问。作用域链的前端,始终都是当前执行的代码所在的环境的变量对象,如果环境是一个函数,那么它的变量对象就是该函数的活动对象。作用域链的下一个变量对象来自包含(外部)环境,再下一个变量对象来自下一个包含环境。这样一直延续到全局执行环境,记住,全局执行环境的变量对象永远是作用域中的最后一个对象。

(2)知识剖析:

程序执行时,环境栈与执行环境的关系,当执行流进入一个函数时,即该函数正在执行,函数的执行环境就会被推入一个环境栈中,所有处在执行流的执行环境将有次序地保存在环境栈中,在函数执行之后, 栈将其执行环境弹出,把控制权交给原来的执行环境。所以在程序执行中,环境栈是不断变化的,伴随着执行环境的出入.

(3)常见问题:

js中执环境和作用域的区别在哪里?

(4)解决方案:


1.执行环境:执行环境是JS中最重要的一个概念;它定义了变量和函数有权访问的其他数据;2.全局执行环境:最外围的一个执行环境,根据ECMAScript实现所在的宿主环境不同而不同,在Web浏览器中,全局执行环境被认为是window对象;</p>

3.作用域链:当代码在环境中执行时,会创建变量对象的一个作用链;作用域链的作用是保证对执行环境有权访问的所有变量和函数的有序访问;




关于深拷贝数组的骚操作:

通过数组方法concat去复制一个数组并返回一个副本的特性

声明一个变量在把副本数组赋值给变量

具体链接:https://www.h5course.com/a/20160329399.html





返回列表 返回列表
评论

    分享到