JavaScript 实用技巧
奕玄
学习、总结
展开
-
获取 url 并解析生成包含查询串参数的对象
页面的 URL 地址可以通过 location.url 取得,举个例子,比如 https://www.example.com/path?name1=value1&name2=value2#top这时根据 URL 中的 ?、# 和 & 特征字符,充分利用好 split() 字符串分割方法将整个 URL 逐渐剥离成以查询串参数组成的数组,最后还是使用 split() 方法根据 = 字...原创 2019-03-09 20:43:05 · 223 阅读 · 0 评论 -
如何实现数组去重?
要将数组中重复的值剔除,常规解法使用 ES5 中数组的一些 API 即可,而更简便的方法可以结合使用 ES6 中的扩展运算符和 Set 数据结构。下面给出 4 种解法:方法一,使用 splice 方法删除重复的元素function normalize (arr) { if (arr && Array.isArray(arr)) { var len = arr....原创 2019-03-07 15:54:35 · 2154 阅读 · 0 评论 -
使用 JS 获取文件扩展名
给你一个文件名,你能获得它的扩展名吗?这里面主要考察的是对正则表达式的熟悉程度。我们先对文件名做个分析,扩展名是在文件名的最后,且以 . 开头。如此扩展名便有了两个特点,针对第一个特点,我们用 $ 元字符限定扩展名在整个文件名的最后;对于第二个特点,以 \. 表示扩展名的开头,而用 [^\.]+ 匹配扩展名的名字部分。其中因为 . 是元字符,故予以转义;^ 元字符放置于 . 字符之前表示匹配...原创 2019-03-07 15:57:05 · 1843 阅读 · 0 评论 -
实现数组的随机排序(含洗牌算法)
有时,我们需要将一个数组内的元素顺序进行打乱,达到随机排序的目的。首先想到的是 Math.random() 方法结合数组的 sort() 方法。Math.random() 结合 sort() 方法Math.random() 方法用于产生一个介于 0 和 1 之间的随机数(含 0 但不包括 1)。数组的 sort() 方法可以有两种用法:用法一:在不传入可选的函数参数时,将会对数组的每一个元...原创 2019-03-07 15:59:55 · 690 阅读 · 0 评论 -
怎么实现深拷贝
注意点进行拷贝操作时,须加以区分引用类型和基本数据类型的值,且拷贝引用类型的值时,不是简简单单的复制其保存在栈中的指针,(即浅拷贝)而是应该复制其存储在堆中的数据。解题思路(1)方法一:分别对数组、对象、基本数据类型值进行判断、考虑,使用递归的方式复制值(2)方法二:利用了 JSON.parse()、JSON.stringify() 这两个方法实现深拷贝代码/* 方...原创 2019-03-07 16:01:50 · 1245 阅读 · 0 评论 -
书写一个用于验证邮箱的正则表达式
首来看几个合法邮箱的例子:1234@qq.com(纯数字)wang@126.com(纯字母)wang123@126.com(数字、字母混合)wang123@vip.163.com(多级域名)wang_email@outlook.com(含下划线 _)wang.email@gmail.com(含英语句号 .)根据对以上邮箱的观察,可将邮箱分为两部分(“@”左边和右边部分)来进行分析...原创 2019-03-12 20:52:13 · 2398 阅读 · 0 评论