Results 46 issues of hanyueqiang

```js const model = document.getElementById("model") const word = document.getElementById("word") var obj= {}; const newObj = new Proxy(obj, { get: function(target, key, receiver) { console.log(`getting ${key}!`); return Reflect.get(target, key, receiver); },...

#### BFC(Block formatting contexts):块级格式上下文 具有 BFC 特性的元素可以看作是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素,并且 BFC 具有普通容器所没有的一些特性。 可解决父元素高度塌陷,兄弟元素外边距折叠、清除浮动等问题。 只要元素满足下面任一条件即可触发 BFC 特性: - body 根元素 - 浮动元素:float 除 none 以外的值 - 绝对定位元素:position (absolute、fixed) - display 为 inline-block、table-cells、flex - overflow...

在100万这个量级下, forEach 的性能是和for的一致 在1000万量级for循环性能远高于forEach

首先,介绍webpack-dev-server: webpack-dev-server 主要包含了三个部分: 1.webpack: 负责编译代码 2.webpack-dev-middleware: 主要负责构建内存文件系统,把webpack的 OutputFileSystem 替换成 InMemoryFileSystem。同时作为Express的中间件拦截请求,从内存文件系统中把结果拿出来。 3.express:负责搭建请求路由服务。 其次,介绍工作流程: 1.启动dev-server,webpack开始构建,在编译期间会向 entry 文件注入热更新代码; 2.Client 首次打开后,Server 和 Client 基于Socket建立通讯渠道; 3.修改文件,Server 端监听文件发送变动,webpack开始编译,直到编译完成会触发"Done"事件; 4.Server通过socket 发送消息告知 Client; 5.Client根据Server的消息(hash值和state状态),通过ajax请求获取 Server 的manifest描述文件; 6.Client对比当前 modules...

实现思路: 1.把字符串用split分割为数组,遍历数组 2.对遍历的每个值进行toUpperCase()全等对比,如果相等证明这个字母原就是大写,进行小写转换,如果不相等说明取反成功,进行大写转换 代码实现 ```js function changeStr(str) { const arr = str.split(''); const changeArr = arr.map(val => val = (val === val.toUpperCase()) ? val.toLowerCase() : val.toUpperCase()); return changeArr.join(''); } console.log(changeStr('abC123&ddD'))...

具体思路: 核心是当滚动到最后一张图时,即将滚动第一张图时,把当前count计为0,最后一张图的left是负当前滚动的宽度,也就是去当前图片的前一张。当滚动1至最后一张前一张 ,最后一张的位置不变。 代码实现参考:[答案解析](https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/108)

首先要理解finally定义: > finally() 方法返回一个Promise。在promise结束时,无论结果是fulfilled或者是rejected,都会执行指定的回调函数。这为在Promise是否成功完成后都需要执行的代码提供了一种方式。-来自MDN ```js Promise.prototype.finally = function (callback) { let P = this.constructor; return this.then( value => P.resolve(callback()).then(() => value), reason => P.resolve(callback()).then(() => { throw reason }) );...

viewport + rem 实现 在根元素html设置font-size. 将元素转换成rem,通过 window.devicePixelRatio 拿到dpr 再写meta 设置 viewport的scale : 1/dpr 参考:[使用Flexible实现手淘H5页面的终端适配](https://github.com/amfe/article/issues/17) Flexible实现思路: - 动态改写``标签 - 给``元素添加`data-dpr`属性,并且动态改写`data-dpr`的值 - 给``元素添加`font-size`属性,并且动态改写`font-size`的值

随机生成一个长度为 10 的整数类型的数组,例如 [2, 10, 3, 4, 5, 11, 10, 11, 20],将其排列成一个新数组,要求新数组形式如下,例如 [[2, 3, 4, 5], [10, 11], [20]]。 解题思路: 1、生成一个长度为10整数数组 2、观察结果数组特点:有序、去重 3、结果数组是二维数组,划分规律为`Math.floor(n/10)`的索引 代码实现: ```js function getResult() { const obj...

ES6 代码转成 ES5 代码,我们肯定会想到 Babel。 Babel 把 ES6 转成 ES5 ,大致分为三步: 将代码字符串解析成抽象语法树,即所谓的 AST 对 AST 进行处理,在这个阶段可以对 ES6 代码进行相应转换,即转成 ES5 代码 根据处理后的 AST 再生成代码字符串