随笔分类 - js
js相关
摘要:介绍 JavaScript中有一个被称为作用域(Scope)的特性。虽然对于许多新手开发者来说,作用域的概念并不是很容易理解,我会尽我所能用最简单的方式来解释作用域。理解作用域将使你的代码脱颖而出,减少错误,并帮助您使用它强大的设计模式。 什么是作用域(Scope)? 作用域是在运行时代码中的某些特
阅读全文
摘要:今天同事问了道问题 var a=0,b=0; for(;a<10,b<7;++a,++b){ g=a+b } console.log(g) 问输出结果为多少??? 答案:12 这里要知道for循环的条件不管写多少个,必须都满足才可以,我们可以使用断点测试 第一次如下 点击下一个,让断点下传,到6时便
阅读全文
摘要:什么是函数柯里化? 百度百科: 在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。通俗点说就是将一个函数拆分成多个函数,是固定部分参数,返回一个接受剩余参数的函数,也称为部分计算函数,
阅读全文
摘要:【大纲】 【主体】 注意:先进先出 事件轮询: 事件初始化代码执行完毕后,开始执行事件队列里的待处理事件 .
阅读全文
摘要:大纲: 主体: (1)介绍 (2)案例 编程实现斐波那契数列的计算 递归调用实现案例: Web Workers多线程的新标准并没有改变JS单线程的本质,分离出的子线程完全受主线程控制,且不得操作DOM,只有主线程才可以对页面进行更新操作。 (3)使用 ①创建分线程文件 ②主线程发消息并设置回调 (4
阅读全文
摘要:大纲: 相关知识点: 主体: (1)模型原理 JS部分:初始化代码执行 WebAPIS:执行上下文对象(不是一个真的对象,而是一个抽象的虚拟对象,可以看做栈里的一个区域,包含很多对象) setTimeout:定时器管理模块(分线程) DOM(document):事件响应管理模块(分线程)callba
阅读全文
摘要:大纲: 【主体】 (1)如何证明JS运行是单线程的? 上述代码执行顺序结果为:fn()→timeout 1111→timeout 2222 接下来对上述代码做下修改 执行结果如右图所示 接下来点击确认,关闭弹框,再往后1s执行timeoout 1111,再过1s执行timeout 2222 从这里可
阅读全文
摘要:首先看几个问题: 【主体】 (1)定时器真的时定时执行的吗? 顺序验证: 测试结果: 接下来对上述代码做下修改,增加一个长时间工作的消耗,此时再来验证下定时器运行的精准度 结果如下: (2)定时器回调函数是在分线程上执行的吗? 主线程上执行 原因:JS代码是在主线程执行,所以回调函数是在主线程上执行
阅读全文
摘要:不同浏览器的内核,不太一样 360双核切换机制 一般涉及到金钱交易时,会切换到Trident内核,因为IE内核安全性较稳 不涉及金钱利益时,则会使用webkit内核 (1)内核是由很多模块构成 注意: 定时器模块运行在分线程上,那么是不是说明回调函数在分线程上?? JS代码运行在分线程上??? 答案
阅读全文
摘要:【大纲】 二级大纲: 三级大纲: 【主体】 (1)进程process 如下所示,两者内存空间相互独立 (2)线程thread (3)图解 注意:有的程序是多进程的,有的时单进程的 (4)单线程与多线程 1、如果一个进程只包含一个线程,那么它就是单线程的 2、如果一个进程有多个线程,那么它就是多线程的
阅读全文
摘要:(1)借用构造函数继承 案例如下: 验证: (2)组合继承 案例如下: 验证如下: 结果如右图所示 . .
阅读全文
摘要:【前言】 之前已经介绍了对象创建的五种模式,下面看下继承模式 本节介绍下《原型链继承》 【主体】 验证如下: 关键点: .
阅读全文
摘要:【前言】 函数高级部分先看到这里,接下里看下面向对象高级部分 1、对象创建模式 2、继承模式 【主体】 (1)Object构造函数模式 案例如下: 测试结果如右图所示 (2)对象字面量形式创建 案例如下: 结果如右侧所示 (3)工厂模式创建对象 案例如下: 工厂模式问题--局限性,验证如下 (4)自
阅读全文
摘要:【面试题1】 答案:The Window 分析: 本案例里,不存在闭包。 条件: 1、函数嵌套(满足) 2、内部函数调用外部函数变量(没有) 综上所述,该例中不存在闭包 【面试题2】 答案:My Object 分析: 案例2为闭包,具体如下所示 .
阅读全文
摘要:发现网上一堆闭包的教程都说闭包会造成内存泄漏,特意去查了下书,发现这一直是一个误解。 js高程原文这样说的:由于IE9 之前的版本对JScript 对象和COM 对象使用不同的垃圾收集。因此闭包在IE 的这些版本中会导致一些特殊的问题。具体来说,如果闭包的作用域链中保存着一个HTML 元素,那么就意
阅读全文
摘要:什么是闭包?能够访问其他函数内部变量的函数 闭包解决了什么问题由于变量的作用域的原因 (函数内部能读取全局变量,函数外部无法读取函数内部的变量【局部变量】),为了在函数外部读取局部变量,所以就有了闭包。 闭包的作用1.访问其他函数内部变量2.保护变量不被内存回收机制回收3.避免全局变量被污染 方便调
阅读全文
摘要:【大纲】 【主体】 (1)闭包优缺点 1、延长局部变量的生命周期2、外部访问函数内部变量 闭包的优点同时也是它的缺点,就是 (2)解决方案 1、能不用闭包就不用(很难做到,因为应用较多) 2、及时释放 通过null,将其设置为垃圾对象,利用垃圾回收机制回收 如下所示,及时释放 (3)内存溢出与内存泄
阅读全文
摘要:【自定义JS模块】 【闭包案例】 (1)案例1 对应的模块文件 (2)案例2 使用匿名函数 对应的模块文件 案例2分析:因为内部函数引用了外部函数的变量,且存在嵌套关系,所以是闭包,分析结构图如下 .
阅读全文
摘要:大纲: 主体: (1)场景1:点击按钮显示点击的第几个 注意:伪数组每次循环时都会重新计算一次长度,所以最好提出去或者直接加到for循环内部 结果: 分析: 1、i为全局变量 解决方案: 1、下标法 2、闭包法 变量分类与读取: 【闭包理解】 (1)首先做下断点测试 (2)自定义验证: (3)闭包条
阅读全文
摘要:面试题1: ,答案为10 有一点需要明确:作用域是在定义编写代码时已经决定好的 面试题2: 结果1: 结果2: 首先在内部作用域找,没有 然后在全局作用域找,window没有,所以会报错如果想找对象内部的它,此时需要借助this .
阅读全文

浙公网安备 33010602011771号