前言
作为JavaScript小白,一些基本代码经常用到,每次都还需要网上再查,不如记录一下,这也是博客的目的之一啊!
干货
1. Object比较
JavaScript如何判断两个对象equal呢,而非==,换句话说如何判断两个对象的属性都相同?
下面的函数可以判断target对象于origin对象值相同
代码
// 判断两个object是否相同
function objCompare(origin, target) {
if (typeof target !== "object") {
return origin === target;
}
if (typeof origin !== "object") {
return false;
}
// 校验keys数组长度是否相等
if (Object.keys(target).length !== Object.keys(origin).length){
return false;
}
for (let key of Object.keys(target)) {
//遍历target的所有自身属性的key
if (!objCompare(origin[key], target[key])) {
//递归比较key对应的value
return false;
}
}
//遍历结束,所有value都深度比较相等,则两对象相等
return true;
}
说明
已经测试情况:
-
非对象比较为false,正常
-
长度不相同为false(包含origin比target胖或者target比origin胖),正常
-
对象属性还是对象的情况会进行深层比较,正常
-
两个空对象比较返回true,正常
示例

2. URL Query参数解析
获取URL的query指定参数的值
也可用URLSearchParams来取得类似的功能, 见 https://www.sitepoint.com/get-url-parameters-with-javascript/
直接传入query字符串中的key参数即可
代码如下:
function getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg); //匹配目标参数
if (r != null) return unescape(r[2]); return null; //返回参数值
}
示例:
https://www.baidu.com/s?ie=UTF-8&wd=word
我想取wd对应的value值,直接调用getUrlParam('wd')即可

博主有话说
秋招结束,飘着心终于放下了,我一定赶紧赶快更赶快更,虽然还没什么人看0.0