摘要: 前言 在开发中,我们经常会遇到在数组中查找指定元素的需求,可能大家觉得这个需求过于简单,然而如何优雅的去实现一个 findIndex 和 findLastIndex、indexOf 和 lastIndexOf 方法却是很少人去思考的。本文就带着大家一起参考着 underscore 去实现这些方法。 阅读全文
posted @ 2017-11-02 11:47 qiaoyang_z 阅读(1926) 评论(0) 推荐(0) 编辑
摘要: 扁平化 数组的扁平化,就是将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组。 举个例子,假设有个名为 flatten 的函数可以做到数组扁平化,效果就会如下: var arr = [1, [2, [3, 4]]]; console.log(flatten(arr)) // 阅读全文
posted @ 2017-11-02 11:46 qiaoyang_z 阅读(1361) 评论(0) 推荐(0) 编辑
摘要: 前言 取出数组中的最大值或者最小值是开发中常见的需求,但你能想出几种方法来实现这个需求呢? Math.max JavaScript 提供了 Math.max 函数返回一组数中的最大值,用法是: Math.max([value1[,value2, ...]]) 值得注意的是: 而我们需要分析的是: 1 阅读全文
posted @ 2017-11-02 11:45 qiaoyang_z 阅读(2634) 评论(0) 推荐(0) 编辑
摘要: 前言 jQuery 的 extend 是 jQuery 中应用非常多的一个函数,今天我们一边看 jQuery 的 extend 的特性,一边实现一个 extend! extend 基本用法 先来看看 extend 的功能,引用 jQuery 官网: Merge the contents of two 阅读全文
posted @ 2017-11-02 11:42 qiaoyang_z 阅读(598) 评论(0) 推荐(0) 编辑
摘要: 前言 拷贝也是面试经典呐! 数组的浅拷贝 如果是数组,我们可以利用数组的一些方法比如:slice、concat 返回一个新数组的特性来实现拷贝。 比如: var arr = ['old', 1, true, null, undefined]; var new_arr = arr.concat(); 阅读全文
posted @ 2017-11-02 11:41 qiaoyang_z 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 前言 在上篇《JavaScript专题之类型判断(上)》中,我们抄袭 jQuery 写了一个 type 函数,可以检测出常见的数据类型,然而在开发中还有更加复杂的判断,比如 plainObject、空对象、Window 对象等,这一篇就让我们接着抄袭 jQuery 去看一下这些类型的判断。 plai 阅读全文
posted @ 2017-11-02 11:40 qiaoyang_z 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 前言 类型判断在 web 开发中有非常广泛的应用,简单的有判断数字还是字符串,进阶一点的有判断数组还是对象,再进阶一点的有判断日期、正则、错误类型,再再进阶一点还有比如判断 plainObject、空对象、Window 对象等等。 以上都会讲,今天是上半场。 typeof 我们最最常用的莫过于 ty 阅读全文
posted @ 2017-11-02 11:39 qiaoyang_z 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 前言 数组去重方法老生常谈,既然是常谈,我也来谈谈。 双层循环 也许我们首先想到的是使用 indexOf 来循环判断一遍,但在这个方法之前,让我们先看看最原始的方法: var array = [1, 1, '1', '1']; function unique(array) { // res用来存储结 阅读全文
posted @ 2017-11-02 11:38 qiaoyang_z 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 前言 在《JavaScript专题之跟着underscore学防抖》中,我们了解了为什么要限制事件的频繁触发,以及如何做限制: 今天重点讲讲节流的实现。 节流 节流的原理很简单: 如果你持续触发事件,每隔一段时间,只执行一次事件。 根据首次是否执行以及结束后是否执行,效果有所不同,实现的方式也有所不 阅读全文
posted @ 2017-10-31 16:37 qiaoyang_z 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 前言 在前端开发中会遇到一些频繁的事件触发,比如: 为此,我们举个示例代码来了解事件如何频繁的触发: 我们写个 index.html 文件: <!DOCTYPE html> <html lang="zh-cmn-Hans"> <head> <meta charset="utf-8"> <meta h 阅读全文
posted @ 2017-10-31 16:36 qiaoyang_z 阅读(194) 评论(0) 推荐(0) 编辑