声明提升

2019-07-21javascript字数统计1,188阅读时长4分钟

变量的声明周期#当引擎处理变量的时候,变量的生命周期大致分为一下阶段: 声明阶段(Declaration phase):在作用域中注册一个变量 初始化阶段(Initialization phase): 为变量分配内存地址并为作用域中的变量创建绑定,在此步骤中变量使用undefined来初始化 赋值阶段(Assi...

call-apply-bind

2019-07-19javascript字数统计548阅读时长2分钟

js中常用call、apply、bind来改变this的指向,接下来我们先来看下3者之间的区别,然后再分别来模拟实现以下这三个方法。

BFC

2019-06-04CSS字数统计562阅读时长2分钟

BFC(Block Formatting Context) 块级格式化上下文,是W3C CSS 2.1规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用。BFC中的内容不会影响到其外部的内容,类似于一个BFC就是一个独立的行政单位,也就是说BFC就是一个作用范围,可以把它理解成是一...

for-of 中为什么可以做异步回调

2019-06-04javascript字数统计1,315阅读时长5分钟

允许js对象去定义它们的迭代行为。为了变成可迭代对象,一个对象必须实现@@iterator 方法,意思是这个对象或者对象的原型上必须要有一个Symbol.iterator的属性

JS中的模块化

2019-05-20模块化字数统计2,183阅读时长8分钟

模块化#1、为什么会出现模块化#在古老的还没有模块化的年代(其实也没几年)开发前端页面的时候一个html里面一个js文件搞定所有的功能,好一点的程序员可能会进行文件的划分,不同的文件内做不同的功能,但是这样依然会带来一些问题,比如:全局变量的污染、没有明显的命名空间、代码维护性低等等问题,虽然之后出现IIFE(立...

unbuntu下安装mysql

2019-04-27mysql字数统计512阅读时长2分钟

进入服务器执行以下命令#ssh root@xxx.xxx.xxx.xxx sudo apt-get update sudo apt-get install mysql-server # 这里安装的时候回提示你设置数据库密码(一个很明显的界面),输入密码并确认即可 sudo apt-get isntall mys...

简单的聊下new操作符

2019-03-04前端基础面试字数统计1,061阅读时长4分钟

定义 语法 带return的构造函数 new的过程中发生了什么? 自己实现一个new操作符 验证 定义#new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。 语法#new constructor([arguments]) constructor: 一个指定对象实例的类...

isNaN 与 Number.isNaN 区别

2018-06-01前端isNaN字数统计349阅读时长2分钟

NaN#js中有一个特殊的对象:NaN,它表示一个非法的数字,即:Not a Number。在js中她也是唯一一个不等于自身的变量,即:NaN !== NaN NaN != NaN window.isNaN#window.isNaN在接收到参数后,会先把参数转化成数字A(重点),然后再比较A !== A,用代码可...

Margin Collpase/ Margin 重叠

2018-05-13前端margin字数统计740阅读时长3分钟

margin-collpase,又称外边距塌陷或边距重叠,它表示在html流式布局中,在垂直方向上外边距会发生叠加的现象。

数组操作之reduce

2018-03-08前端数组字数统计482阅读时长2分钟

reduce是一种数组运算,通常用于将数组的所有成员"累积"为一个值。