美文网首页
javaScript(js)两个数值进行比较

javaScript(js)两个数值进行比较

作者: 大兵_HERG | 来源:发表于2019-08-13 14:47 被阅读0次

1.任意俩个值进行比较的方法封装(===)-值和类型相等

function valueEquals (a, b)  {
//两个变量相等-基本类型的比较
  if (a === b) return true;
//数组的比较-比较相应索引对应的基本类型的值的比较
  if (!(a instanceof Array)) return false;
  if (!(b instanceof Array)) return false;
  if (a.length !== b.length) return false;
  for (let i = 0; i !== a.length; ++i) {
    if (a[i] !== b[i]) return false;
  }
  return true;
}

2.任意俩个值进行比较的方法封装(==)-值相等

//判断是否是纯粹的对象,前面有封装
function isObject(obj) {
  return Object.prototype.toString.call(obj) === '[object Object]';
}
//松散比较
function looseEqual (a, b) {
  const isObjectA = isObject(a);
  const isObjectB = isObject(b);
  if (isObjectA && isObjectB) {
    return JSON.stringify(a) === JSON.stringify(b);
  } else if (!isObjectA && !isObjectB) {
    return String(a) === String(b);
  } else {
    return false;
  }
};
//俩个数组的比较
function arrayEquals (arrayA, arrayB) {
  arrayA = arrayA || [];
  arrayB = arrayB || [];

  if (arrayA.length !== arrayB.length) {
    return false;
  }

  for (let i = 0; i < arrayA.length; i++) {
    if (!looseEqual(arrayA[i], arrayB[i])) {
      return false;
    }
  }

  return true;
};
//俩个变量的比较
function isEqual (value1, value2) {
//数组
  if (Array.isArray(value1) && Array.isArray(value2)) {
    return arrayEquals(value1, value2);
  }
//非数组
  return looseEqual(value1, value2);
};
/*严格比较*/
valueEquals(1, 1)
//true
 valueEquals(1, "1")
//false
 valueEquals([1, 2], [1, 2])
//true
/*松散比较*/
isEqual(1, "1")
//true
//松散也是相对的只是针对数组内的基本类型,引用类型除外
isEqual([{1: 1}], [{1: "1"}])
//false
isEqual([{1: "1"}], [{1: "1"}])
//true
//如果是对象比较也是严格比较
isEqual({1: "1"}, {1: "1"})
//true
isEqual({1: 1}, {1: "1"})
//false
//需要注意,不过此类比较很少用到,了解即可

相关文章

  • javaScript(js)两个数值进行比较

    1.任意俩个值进行比较的方法封装(===)-值和类型相等 2.任意俩个值进行比较的方法封装(==)-值相等

  • js 基础知识随笔

    js 比较运算, 如果字符串和数值比较会先将字符串转为数值再进行比较 如果是对象和字符串比较则会调用对象的valu...

  • javascript基础08(js对象,BOM,库)

    1.js对象JavaScript中的所有事物都是对象:字符串、数值、数组、函数...此外,JavaScript允许...

  • 冒泡排序

    冒泡排序思想 让数组当中相邻的两个数进行比较,数组当中比较小的数值向下沉,数值比较大的向上浮!外层for循环控制循...

  • JAVASCRIPT运算符

    javascript基本类型(指字符串和数值等内置类型)的比较是值的比较。javascript对象的比较是引用的比...

  • js-this

    javascript中的this js中的this,比较难以理解,下面进行简单记录。主要分为以下几种情况 方法调用...

  • JS精度和大数处理

    JS精度和大数处理 1. 引子 众所周知 JavaScript 仅有 Number 这个数值类型,而 Number...

  • 2018-05-17

    继续学习js: 1.JavaScript 中的所有事物都是对象:字符串、数值、数组、函数... JavaScri...

  • 冒泡,选择,插入排序

    package basic_01; /* * 冒泡算法:稳定,时间:n^2,相邻两个数值进行比较。end边界逐渐减...

  • JS 里的数据类型

    JS 里的数据类型 JavaScript 的数据类型,有7种。 1,数值(number)2,字符串(string)...

网友评论

      本文标题:javaScript(js)两个数值进行比较

      本文链接:https://www.haomeiwen.com/subject/hoovjctx.html