133k 2:01

# HTML # 网络请求 # css # cookie ​ # 状态码 # restful # http # webpack # vue2 v-show 和 v-if: v-show v-show 的原理是使用 display:none 进行隐藏,会引发重绘而不会回流。 v-show 适用于需要频繁切换 DOM 元素的场景中; v-if v-if 原理是 DOM 元素是否添加,会引发回流与重绘 v-if 适用于不常切换 DOM 元素的条件判断中 v-for 和 v-if 同时使用 在 vue2 中,v-for 和 v-if...
19k 18 分钟

# ECMAScript 6 简介 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 # let 和 const 命名 # let 基本用法 - 块级作用域 在 es6 中可以使用 let 声明变量,用法类似于 var ⚠️ let 声明的变量,只在 let 命令所在的代码块内有效 { let a = 10; var b = 20;}console.log(a); //a is...
31k 28 分钟

# JavaScript 进阶 - 第 1 天 学习作用域、变量提升、闭包等语言特征,加深对 JavaScript 的理解,掌握变量赋值、函数声明的简洁语法,降低代码的冗余度。 理解作用域对程序执行的影响 能够分析程序执行的作用域范围 理解闭包本质,利用闭包创建隔离作用域 了解什么变量提升及函数提升 掌握箭头函数、解析剩余参数等简洁语法 # 作用域 了解作用域对程序执行的影响及作用域链的查找机制,使用闭包函数创建隔离作用域避免全局变量污染。 作用域(scope)规定了变量能够被访问的 “范围”,离开了这个 “范围” 变量便不能被访问,作用域分为全局作用域和局部作用域。 #...
772 1 分钟

手动实现一个类似 forEach 的效果: 前端开发过程中经常会遇到使用 forEach 的场景,那么它的原理究竟是什么呢?下面我手动写了一个类似的效果,不同的是函数可能会改变原始值. 代码如下: function myEach(obj,fn,context=window){ // 类型判断 if(typeof obj !== 'object'){ throw ('必须要是对象') } if(obj === null){ throw ('必要不为空对象')...
1.2k 1 分钟

思考: 为什么 0.1+0.2 != 0.3? 为什么 1.005.toFixed (2)=1.00 而不是 1.01 双精度存储 首先在开始之前需要了解一下 JavaScript 的 number 类型在计算机中是如何存储的,这也是一切问题的基础。JavaScript 的数字都是 number 类型的,不管是整数还是浮点数都以 IEEE754 双精度的格式存储在计算机中,什么是双精度呢?就是以 64 个 bit 位来存储 分别是 1 个符号位 + 11 个指数位 + 52 个尾数位 举个例子,如果是 5.5 这个数字的话,则计算过程是这样的: 5.5 转二进制 =====>...
5.9k 5 分钟

# NaN 历史遗留问题 由于历史遗留问题,NaN 的内部做了 hash 处理,使得每一次 NaN 返回的结果都不同。 NaN === NaN //false;Object.is(NaN,NaN) //true// 除此之外,延申:+0 === -0 // 返回 trueObject.is(+0 , -0) // 返回 false# null 的历史遗留问题 null 的本质其实是 0, 代表为空,而 undefined 的本质是一个特殊的对象,代表从未赋值过. Number(null); //0Number(undefined); //NaN12+null;...
16k 15 分钟

# new 关键字 new 关键字实现分为三步: 1、根据构造函数的原型创建新的对象 2、执行构造函数,绑定 this 指向为新对象,传入参数 3、返回执行后的结果 function myNew(constructor,...args){ // 创建对象,原型为构造函数的原型对象 const obj = Object.create(constructor.prototype); // 执行构造函数,传入创建的对象和参数 const res = constructor.apply(obj,args); // 注意 apply 方法是函数对象的方法,普通对象不可用 return...
152 1 分钟

# 图片上传: input 标签中 file(accetp 接受类型) 、 fileList(change 事件的 e.target.files [0]) 、 Blob(二进制格式数据)、 FileReader(将文本文件 file 转为字符串或者 URL)、 URL scheme 、 拖拽事件:dragenter、dragover、drop
2.7k 2 分钟

<!--Ctrl+[ 提升列表等级;Ctrl+1 一级标题 --> # 一、用于版本控制 版本控制工具需要的功能 协同修改、数据备份、版本管理、权限控制、历史记录、分支管理 分布式版本控制 vs 集中式版本控制 集中式版本控制需联网才能需要 # 二、Git 简介 本地库和远程库 团队内成员操作 想找不是团队内的成员 东方不败 来帮忙,那就需要他 fork 一下,这样对于修改可以进行 pull request,经过审核后可以 merge 到原来的远程仓库 # 三、Git 命令行操作 主体内容: # 本地库初始化 git...