【说站】javascript判断变量相等的方法整理
2023-06-13 09:13:23 时间
javascript判断变量相等的方法整
1、==为转换类型比较运算符,===为严格比较运算符,在数据类型相同的情况下,使用==一般不会造成问题。
let num = 5;
let num2 = 5;
num == num2;//true
num === num2;//true
2、Array toString方法,前端给后端传参时,后端有时会要求多个参数,隔开,Array toString方法就比较有用了,这一方法也能用作数组比较。
let arr = [1,3,5,7,9];
let arr2 = [1,3,5,7,9];
arr.toString() === arr2.toString();//true "1,3,5,7,9"
3、isEqual函数可以判断绝大部分复杂对象(除了对象中有函数的)
function isObject(obj) {
return typeof obj === 'object' && obj !== null
}
function isEqual(a, b) {
if (a === b) return true
var isObjectA = isObject(a)
var isObjectB = isObject(b)
if (isObjectA && isObjectB) {
try {
var isArrayA = Array.isArray(a)
var isArrayB = Array.isArray(b)
if (isArrayA && isArrayB) { // a b都是数组
return a.length === b.length && a.every((el, index) => isEqual(el, b[index]))
} else if (a instanceof Date && b instanceof Date) { // a b都是Date对象
return a.getTime() === b.getTime()
} else if (!isArrayA && !isArrayB) { // 此时a b都是纯对象
var keyA = Object.keys(a)
var keyB = Object.keys(b)
return keyA.length === keyB.length && keyA.every(key => isEqual(a[key], b[key]))
} else {
return false
}
} catch (e) {
console.log(e)
return false
}
} else if (!isObjectA && !isObjectB) { // a b 可能是string,number,boolean,undefined中的一种
return String(a) === String(b)
} else {
return false
}
}
以上就是javascript判断变量相等的方法整理,希望对大家有所帮助。
相关文章
- 【javascript】使用happypack和thread-loader加速构建「建议收藏」
- JavaScript中数组Array方法详解[通俗易懂]
- 【说站】javascript字符串的语法介绍
- JavaScript异步拖拽上传文件详解编程语言
- JavaScript方法和技巧大全
- JavaScript脚本性能的优化方法
- javascript代码在ie8里报错document.getElementById(...)为空或不是对象的解决方法原创
- 几个比较实用的JavaScript测试及效验工具
- JavaScript设计模式富有表现力的Javascript(一)
- javascript日期时间转换的方法
- ASP.Net页尾中添加JavaScript的最佳方法实战分享
- 关于JavaScript与HTML的交互事件
- JavaScript模拟类机制及私有变量的方法及思路
- 在ASP.NET中使用JavaScript脚本的方法
- JavaScript设计模式之适配器模式介绍
- JavaScript判断变量是对象还是数组的方法