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学习指路:Javascript

推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。

以上是 javascript判断变量相等的方法整理 的全部内容, 来源链接: utcz.com/z/544439.html

回到顶部