随笔分类 - js深入学习(含es6)
js学习笔记总结以及es6学习
摘要:一. call和apply 1. 代码完整实现 2. 先来溜溜 案例一 案例二 3. 注意要点 开头需要做一个类型判断: 获取原始函数: 比如执行Math.max.mycall(null, 1,2,3,4)的时候,mycall函数内部的this指向了Math.max函数,所以我们可以通过const
阅读全文
摘要:继上一篇文章 js内存深入学习(一) 3. 内存泄漏 对于持续运行的服务进程(daemon),必须及时释放不再用到的内存。否则,内存占用越来越高,轻则影响系统性能,重则导致进程崩溃。 对于不再用到的内存,没有及时释放,就叫做内存泄漏(memory leak) 3.1 node.js内存补充 node
阅读全文
摘要:一. 内存空间储存 某些情况下,调用堆栈中函数调用的数量超出了调用堆栈的实际大小,浏览器会抛出一个错误终止运行。这个就涉及到内存问题了。 1. 数据结构类型 栈: 后进先出(LIFO)的数据结构 堆: 一种树状结构 队列: 先进先出(FIFO)的数据结构 2. 变量的存放 JS内存空间分为栈(sta
阅读全文
摘要:继续 JS引擎线程的执行过程的三个阶段(一) 内容, 如下: 三. 执行阶段 1. 网页的线程 永远只有JS引擎线程在执行JS脚本程序,其他三个线程只负责将满足触发条件的处理函数推进事件队列,等待JS引擎线程执行, 不参与代码解析与执行。 JS引擎线程: 也称为JS内核,负责解析执行Javascri
阅读全文
摘要:浏览器首先按顺序加载由<script>标签分割的js代码块,加载js代码块完毕后,立刻进入以下三个阶段,然后再按顺序查找下一个代码块,再继续执行以下三个阶段,无论是外部脚本文件(不异步加载)还是内部脚本代码块,都是一样的原理,并且都在同一个全局作用域中。 JS引擎线程的执行过程的三个阶段: 语法分析
阅读全文
摘要:在JavaScript中,闭包指的是有权访问另一个函数作用域中的变量的函数;创建闭包最常见的方式就是在一个函数内创建另一个函数。如下例子: 上面的例子中返回了一个内部函数(一个匿名函数),第3、4行代码之所以能访问外部函数中的变量propertyName,是因为内部函数作用域链中包含A()的作用域。
阅读全文
摘要:JavaScript中的执行环境定义了变量或函数有权访问的数据(每个函数都有自己的执行环境),全局执行环境是最外围的执行环境,在浏览器中,全局执行环境就是window对象,所以所有的全局变量和函数都是作为window对象的属性和方法创建的。当某一个执行环境中所有代码执行完成后,该环境就被销毁,保存在
阅读全文
摘要:执行环境和作用域 一.全局变量和局部变量 每个执行环境都有与之关联的变量对象(变量和函数存储在这里),全局执行环境是最外围的执行环境,根据ECMA实现所在的宿主不同,表示的执行环境的对象也不同。在web浏览器中,全局执行环境被认为是window对象。 每个函数都有自己的执行环境,有自己对应的变量对象
阅读全文
摘要:1.保存方式:(一脸懵逼???) 基本类型是按值访问的,可以在变量的生命周期改变它,但是它是储存在哪里的呢?在浏览器缓存吗?【执行环境中定义的所有变量和函数都存储在执行环境的变量对象里,变量对象我们编写的代码无法访问,但是解析器在处理数据的时候会在后台调用】 引用类型的值保存在内存中,js对访问内存
阅读全文
摘要:一.函数重载问题: 由于js的函数传入的参数当做arguments对象(和数组类似,但不是Array的实例),传入的参数类型和数量没有限制,没有函数签名,所以如果要实现重载功能 的话,只能是不够完美得实现: function doAdd(num1,num2){ if(arguments.length
阅读全文

浙公网安备 33010602011771号