02 2021 档案
摘要: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 什么是内存 内存是电脑硬件中的内存条在通电后产生的可以用
阅读全文
摘要:javascript高级-数据类型及判断的相关知识 数据类型的分类 基本数据类型(值类型) String Number Boolean Undefiend Null Symbol const str = 'string' const num = 123 const bool = true const
阅读全文
摘要:/* http://meyerweb.com/eric/tools/css/reset/ v2.0-modified | 20110126 License: none (public domain) */ html, body, div, span, applet, object, iframe,
阅读全文
摘要:元素的层级的介绍 什么是元素的层级 通过z-index可以改变开启定位元素的层级 父元素的层级再高也不会遮盖住子元素 元素的层级的介绍 什么是元素的层级 当元素开启定位后就会是元素提升一个层级,网页是由多个层级组成的 <style> *{ font-size: 50px; font-weight:
阅读全文
摘要:浮动引发的高度塌陷问题 高度塌陷问题的产生 BFC(Block Formatting Context)的引入 元素开启BFC后的特点 开启BFC的元素不会被其他浮动元素所覆盖 开启BFC的元素不会发生父子元素外边距重叠 开启BFC后可以包含浮动的子元素 如何开启BFC 设置元素浮动 将元素displ
阅读全文
摘要:定位 static(默认值) 没有开启定位 relative 相对定位的性质 包含块(containing block)概念 没有开启定位时包含块就是当前元素最近的祖先块元素 开启绝对定位后的元素包含块有两种情况 如果所有祖先元素都没有开启定位,则依据根元素()进行定位 如果祖先元素有开启定位,则依
阅读全文
摘要:弹性盒布局详解 弹性盒介绍 弹性盒的CSS属性 开启弹性盒 弹性容器的CSS属性 flex-direction设置弹性元素在弹性容器中的排列方向 主轴与侧轴(副轴) flex-wrap设置弹性容器空间不足时是否自动换行 flex-flow是wrap与direction结合的属性 justify-co
阅读全文
摘要:垂直外边距折叠 垂直外边距折叠的发生 兄弟元素之间(对开发有利,无需处理) 父子元素之间(需要解决) 解决方法1: 使用文字破坏外边距相邻 解决方法2: 使用border破坏外边距相邻 解决方法3: 不是用外边距,转而去调整内边距(padding) 终极版:解决方法: clearfix类封装 垂直外
阅读全文
摘要:CSS过度约束性质 什么是CSS过度约束 当没有开启绝对定位或固定定位时 水平布局必须要满足以下等式 探寻能够设置成auto的CSS属性 等式不成立(过度约束)时的几种情况 当margin与width都没有设置为auto 当margin或width中有一个被设置为auto 当margin与width
阅读全文
摘要:箭头函数的this 什么是箭头函数,箭头函数是es6的新特性,其出现就是为了更好的表示(代替)回调函数 // 箭头函数 (arg1, arg2) => {} // 当箭头函数只有一个参数 arg1 => console.log(arg1) // 箭头函数隐式return arg1 => arg1 /
阅读全文
摘要:基本数据类型与引用数据类型 基本数据类型有五种 /* 基本数据类型有: - String - Number - Boolean - Null ** typeof null 'object' 这只是js的遗留问题,null仍归属于普通数据类型 - Undefined */ var string = '
阅读全文

浙公网安备 33010602011771号