Javascript细节总结2

1.JS 分为哪两大类型i. 原始(Primitive)类型在 JS 中,存在着 6 种原始值,分别是: boolean null undefined number string symbol 首先原始类型存储的都是值,是没有函数可以调用的,比如 undefined.toString() 此时你肯定会有疑问,这不对呀,明明 '1'....

Read More

Javascript细节总结1

1.javascript无动态作用域链栗子如下: 123456789var a = 1;function s() { var a = 3; x();}function x() { console.log(a);}s(); //a = 1 词法作用域让foo()中的a通过RHS引用到了全局作用域中的a,因此会输出2;而动...

Read More

koa2进阶学习笔记

koa2特性 只提供封装好http上下文、请求、响应,以及基于async/await的中间件容器。 利用ES7的async/await的来处理传统回调嵌套问题和代替koa@1的generator,但是需要在node.js 7.x的harmony模式下才能支持async/await。 中间件只支持 async/await...

Read More

JavaScript实现两个变量值交换

一个经典的问题,“两个变量之间值的交换”。1、 引入临时变量进行数据交换 123tmp = a;a = b;b = tmp; 引入临时变量,最最基本的方法,看着很low,但效率确实很高,经典的才是最优雅的。 2、 用对象进行数据交换 123a = {a : b, b : a};b = a.b;a = a.a; 利用对象的键值对进行数据交...

Read More

据说80%的前端写出的事件委托都有bug

事件委托是什么?有什么好处? 假设父元素有一堆儿子,我不监听儿子们,而是监听父亲,看触发事件的是哪个儿子,这就是事件委托。 还可以监听还没有出生的儿子(动态生成的元素节点),省监听器。事件委托嘛,随手就来一个12345678function listen(element, eventType, selector, fn) { const el =...

Read More

axios拦截器

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778import axios from 'axios...

Read More

尝试写第一个单元测试、自动化测试、持续集成

测试库:chai 12345// 安装npm i -D chai// 引入import {expect} from 'chai' 打包工具:parcel 12345// 安装npm i -D parcel// 只需一行代码即可打包,不需要任何配置parcel index.html --no-cache 测试刚在 vue...

Read More

JS又一关于let趣闻

#let到底有没有变量提升?我在 StackOverflow 上闲逛的时候,无意中发现了一个是关于「let 到底有没有提升」的问题: Are variables declared with let or const not hoisted in ES6? 其中一个高票回答认为 JS 中所有的声明(var/let/const/fu...

Read More

HTML关于定位趣闻

大家都知道 position: fixed 是相对于视口(viewport)定位的。 但是这个「真理」会受另一个元素的影响……对,我知道你很震惊…… 先看正常情况: 网页右边是一个 iframe,红色的 .fixed 元素相对于 iframe 视口左上角定位,与我们预期一致。 接下来我在 .box 上面加一个 CSS3 中的属性,就会改变你的认知: 父容...

Read More

TypeScript学习记录

接口-interface1234567891011interface Person { firstName: string; lastNmae: string;}function greeter(person: Person) { console.log('Hello'+person.firstName...

Read More