摘要:
Web Workers多线程的介绍与使用 什么是Web Workers Web Workers是HTML5提供的一个JavaScript的多线程解决方案 我们可以将一些计算量大的程序交给Web Workers执行,不至于让主线程由于一直在计算(被占用)而导致这个见面被冻结,用户的其他交互操作无法响应 阅读全文
摘要:
事件循环模型与定时器 重新认识定时器 js中有两种定时器,一种是循环定时器setInterval,一种是间隔定时器setTimeout setInterval与setTimeout的不同之处在于,前者会在根据的时间间歇性执行回调函数,后者则是在设定的时间后执行一次回调函数 平时我们在用定时器的时候, 阅读全文
摘要:
浏览器、操作系统与JavaScript语言的一些知识 进程与线程 参考文章: 阮一峰的网络日志--进程与线程的简单解释 进程的介绍 进程(process): 当有应用程序需要启动时,操作系统就会自动启动一个或多个进程来维持整个应用程序的运行,应用程序是运行在进程的线程中的 进程中的数据是不能够直接共 阅读全文
摘要:
实现构造函数完整继承 javascript这门语言中,在ES6以前没有类的概念,依靠的是构造函数来模拟类 function Person (name, age) { this.name = name this.age = age _whoAmi = '我是Person构造函数' console.lo 阅读全文
摘要:
原型与原型链的详细剖析 写在最前: 希望各位看完这篇文章后,再也不用害怕JS原型链部分的知识! -- by Fitz 一起努力,加油吧! 原型 原型分为两种显式原型prototype和隐式原型__proto__ 显式原型prototype 显式原型prototype存在于函数中,是函数的一个属性,它 阅读全文
摘要:
对象创建模式 这一篇讲的是什么呢? 主要讲的,就是有哪些方法可以创建对象,这一块知识其实在我的JavaScript基础知识里面有讲过,只是在这剥离出来细细总结一下 这更像是创建对象的一部进化史,哈哈 我们从前到深开始吧! 方式一: Object构造函数模式 适用于: 在最初不确定对象中的属性与方法 阅读全文
摘要:
闭包 之前在我执行上下文执行上下文栈这篇文章中,出现了这样一个题目 for (var i=0; i<10; i++){ setTimeout( ()=>{ console.log(i) // 猜猜结果 }, 2000 ) } 题目答案是: 大约2s后输出10个10 引发这个问题的原因恰恰就是因为va 阅读全文
摘要:
作用域与作用域链 作用域 作用域简单来说就是: 变量或函数在哪些范围内可以用,而在其他部分要用就得重新定义 作用域与this指向的状态是不一样的: 作用域的范围是静态的,在代码编写的时候就已经确定 this的指向则是动态的,随着调用对象的不同而改变 作用域与执行上下文的不同 作用域是静态的,代码编写 阅读全文
摘要:
执行上下文与执行上下文栈 变量提升与函数提升 变量提升 通过var关键字申明的变量,能够在定义语句之前访问到,值为undefined console.log(a) // undefined var a = 'Fitz' // 以上代码的真正过程是: var a console.log(a) a = 阅读全文
摘要:
特殊的name属性 今天在学习变量提升与函数提升遇到了这样一个问题,在进行变量提升的代码测试的时候,我习惯性的使用我常用的变量申明 // 变量提升测试 console.log(name) // 根据所学的变量提升的知识,我原本以为输出的结果是undefined var name = 'Fitz' / 阅读全文
摘要:
尝试重新认识instanceof 不少人应该都知道instanceof运算符的作用是检测 对象A 是否是 对象B 的实例, 即: A instanceof B 但你们知道instanceof是依照什么来判断的吗? 答案是: 原型链 如果A对象能够通过原型链到达B对象,instanceof就会返回tr 阅读全文
摘要:
this的指向详细剖析 function Person (color){ console.log(this) this.color = color this.getColor = function () { console.log(this) console.log(this.color) } th 阅读全文
摘要:
函数的详细剖析 什么是函数 是多条语句或表达式的封装体,用于实现特定功能,能够执行(调用) // add是一个函数 function add (){ var a = 1 // 语句 a = a + 1 // 表达式 return a // 语句 } 为什么使用函数 提高代码的复用性,体现封装的思想 阅读全文
摘要:
对象的详细剖析 什么是对象 多对变量名与变量值组成的集合 var obj = { name: 'Fitz', age: 20 } 为什么要使用对象 更好的管理相关联的多组数据 // 使用对象管理 学生Fitz的个人信息 var Fitz = { name: 'Fitz', age: 21, majo 阅读全文
摘要:
数据、内存、变量的概念及三者之间的关系 什么是数据 数据就是存储在内存中代表特定信息的东西,这个东西本质上就是许多个0和1组成的 数据的特点 可传递 var a = 123 var b = 123 可运算 var a = 123 a += 1 什么是内存 内存是电脑硬件中的内存条在通电后产生的可以用 阅读全文