JS 中的各种 for 循环

真是一坑未填又开一坑….现在阶段,for循环有4种,我们先把所有的 for 循环列出,一个一个的聊。

从MDN上边,找到了 四种 for 循环,分别是:forfor...infor...offor await...of

阅读全文

Js数组中的 find/findIndex/some 以及 every

今天写 Demo 的时候突然在想 find()some() 的区别是什么? 都是为了找到数组中的内容啊?他们的区别在哪里呢

其实我在打这行字的时候就突然想起来区别是什么了😂,所以我把标题改了

相对于 some() 方法, 我知道 find() 方法会更加早一些,不知道为何,🤔明明 find() 方法才是更加新的特性( 也许因为子龙提到的因为jQuery?)

所以今天我们来聊一聊 find/findIndex/some 以及 every 这4个使用起来感觉差不多的方法。

阅读全文

ES6 中 Array 的 fill() 方法

fill 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。

最近遇到的一个坑,其实也不算是坑,只是自己没有了解清楚就在用了。

以前在业务中声明数组变量时我都是使用的 var arr = [] 来声明,
这次兴起用了一次 var arr = new Array(8).fill([]) 声明并且填充内容时居然翻车了….

阅读全文

简单实现滑动滑块完成验证

偶尔会遇到PM提的需求,要加入滑动验证,但是不想使用付费的第三方验证,想就在前端实现滑块验证即可(zuò zuò yàng zi),
这一段时间遇到两次要求加滑动验证了,就整理一下构思和部分伪代码逻辑。

本例只是一个面子工程,不会牵扯到复杂的人机验证部分,所以如果需要考虑人机校验,还是推荐你选择靠谱的第三方行为验证,不要自己瞎折腾。

阅读全文

谈一谈 JavaScript 中的闭包

函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起构成闭包(closure)。也就是说,闭包可以让你从内部函数访问外部函数作用域。在 JavaScript 中,每当函数被创建,就会在函数生成时生成闭包。

先拿 MDN 上的一个简单的 🌰 来说:

function init() {
    var name = "Mozilla"; // name 是一个被 init 创建的局部变量
    function displayName() { // displayName() 是内部函数,一个闭包
        alert(name); // 使用了父函数中声明的变量
    }
    displayName();
}
init();

init() 创建了一个局部变量 name 和一个名为 displayName() 的函数。
displayName() 是定义在 init() 里的内部函数(仅在 init() 函数体内可用),它没有自己的局部变量,
然而它可以访问到外部函数的变量,所以 displayName() 可以使用父函数 init() 中声明的变量 name

阅读全文

关于 ES6 Class 继承中 Constructor 的整理

今天在和小伙伴聊天时, 发现对于 ES6 中的 Class 继承的理解我其实还是只是一个模棱两可的状态, 其实也不只是 constructor 有问题其它的部分其实也有问题, 这次先写类的继承之后再看有没有其它没理解的地方

整篇文章搭配食用 阮一峰老师的 ECMAScript 6 入门 - Class的继承 更佳

Class 可以通过extends关键字实现继承,这比 ES5 的通过修改原型链实现继承,要清晰和方便很多。

阅读全文

export { x as x } 中的 as 是什么?

今天在读一个开源框架的时候看到了一行

export { installer as VueAxios, service as axios };

然后我就 ? ? ?,以前一直都不知道这个 as,然后就赶紧百度,结果没有一个匹配的结果。

然后就只能从阮一峰老师的ES6入门里边找…

阅读全文

使用 Webpack 的 Proxy 解决跨域问题

在这次的项目中,遇到了后端配置了允许跨域,但是我这边请求的时候还是提示跨域,后端折腾了会,我说算了,我这边本地做一下代里还快一点,你继续整接口吧。

所以就用到了 webpack-dev-serverproxy,但是有一些部分我并没有整明白,所以写一篇文章梳理一下。

最简单的就是直接在 webpack 的配置文件中启用 proxy 就可以了,

阅读全文

使用VueJS的计算属性监听DOM元素属性的问题

今天在写一个模拟微信的聊天组件的时候,需要获取消息列表的滚动条高度,来实现每次发送接受消息数据时,自动滚动到列表末尾。
当然就想到了用 Computed 属性来计算容器的 scrollHeight
然后就发现一开始滚动条会定位到列表最后,但是测着测着就发现怎么超出了一定高度范围之后就不会滚动到列表末尾了,而是固定在了一个值。

阅读全文

什么是 [Arguments] 隐式参数?

这段时间总是看到有人提到 arguments 隐式参数, 并且在 方方老师 的面试经中也提到了这个词,但是好像很多人不知道怎么一回事。
确实在 ES6 普及之后,有了 ... 展开运算符之后就很少有用到 arguments 了,并且我在写这篇文章之前还总是拼错单词,因为我喜欢自己定义 parameter 形参…

阅读全文