js原始值与对象的相等比较

简介: js原始值与对象的相等比较
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>原始值与对象的相等比较</title>
</head>
<body>
<script>
  let a = [];
  let b = "0";
  // 1
  console.log(a==0); // true
  // 2
  console.log(a==!a);// true
  // 3
  console.log(a==b); // false
  // 4
  console.log(b==0); // true
  // eg 1
  console.log(Number([])); // 0
  // eg 2
  console.log(Boolean([])); // true
  // eg 3
  console.log(String([])); // ''
  // eg 4
  console.log(Number(b)); // 0
  /*
    js假值:只有false、null、undefined、空字符、0和NaN,其它值转为布尔型都为true。
  */
  console.log(null == 0); // false
  console.log(null<0); // false
  console.log(null<=0); // true
  // 要比较相等性之前,不能将null和undefined转换成其他任何值。就是undefined和null与其他数在进行相等判断时不进行类型转换。
  // null == undefined,这个是true,但是关系运算符可以转换。
// 1、如果x不是正常值(比如抛出一个错误),中断执行。
// 2、如果y不是正常值,中断执行。
// 3、如果Type(x)与Type(y)相同,执行严格相等运算x === y。
// 4、如果x是null,y是undefined,返回true。
// 5、如果x是undefined,y是null,返回true。
// 6、如果Type(x)是数值,Type(y)是字符串,返回x == ToNumber(y)的结果。
// 7、如果Type(x)是字符串,Type(y)是数值,返回ToNumber(x) == y的结果。
// 8、如果Type(x)是布尔值,返回ToNumber(x) == y的结果。
// 9、如果Type(y)是布尔值,返回x == ToNumber(y)的结果。
// 10、如果Type(x)是字符串或数值或Symbol值,Type(y)是对象,返回x == ToPrimitive(y)的结果。
// 11、如果Type(x)是对象,Type(y)是字符串或数值或Symbol值,返回ToPrimitive(x) == y的结果。
// 12、返回false。
</script>
</body>
</html>
相关文章
|
1天前
|
JavaScript 前端开发
javascript判断对象中是否存在某个字段
javascript判断对象中是否存在某个字段
|
1天前
|
JavaScript 前端开发
JS遍历数组和对象的方法有哪些
JS遍历数组和对象的方法有哪些
|
1天前
|
JavaScript
js中批量修改对象属性
js中批量修改对象属性
|
1天前
|
JavaScript 前端开发
JavaScript BOM 浏览器对象模型
JavaScript BOM 浏览器对象模型
|
3天前
|
JavaScript 前端开发 Unix
Node.js 全局对象
Node.js 全局对象
9 2
|
4天前
|
JavaScript 前端开发
深入解析JavaScript中的面向对象编程,包括对象的基本概念、创建对象的方法、继承机制以及面向对象编程的优势
【6月更文挑战第12天】本文探讨JavaScript中的面向对象编程,解释了对象的基本概念,如属性和方法,以及基于原型的结构。介绍了创建对象的四种方法:字面量、构造函数、Object.create()和ES6的class关键字。还阐述了继承机制,包括原型链和ES6的class继承,并强调了面向对象编程的代码复用和模块化优势。
11 0
|
4天前
|
存储 JSON JavaScript
JavaScript基础-对象与JSON
【6月更文挑战第11天】本文介绍了JavaScript对象的创建(字面量、构造函数、Class)与操作,包括属性访问和描述符。同时讲解了JSON的性质及其与JS对象的关系,以及序列化和解析过程。文章还列举了三个常见易错点(属性访问错误、JSON格式错误、循环引用)并提供了避免策略。通过代码示例展示如何操作对象和处理JSON,强调实践对于掌握这些概念的重要性。
|
11天前
|
JSON JavaScript 数据格式
1.js动态的往json数据添加新属性和值 2.JSON 和 JS 对象互转 3.对象转化为数组
1.js动态的往json数据添加新属性和值 2.JSON 和 JS 对象互转 3.对象转化为数组
15 0
|
22天前
|
XML JavaScript 前端开发
JavaScript简介&引入方式(JavaScript基础语法、JavaScript对象、BOM、DOM、事件监听)
JavaScript简介&引入方式(JavaScript基础语法、JavaScript对象、BOM、DOM、事件监听)
16 2
|
23天前
|
Web App开发 JavaScript 前端开发
JavaScript 中的 Range 和 Selection 对象
JavaScript 中的 `Range` 和 `Selection` 对象用于处理文本选择。`Range` 表示文档中选定的区域,而 `Selection` 表示用户选择的文本或光标位置。`Range` 可以创建并设置于任何元素或文本,具有多个属性(如 `startContainer`, `endContainer`, `collapsed`)和方法(如 `cloneContents`, `deleteContents`)。`Selection` 提供了获取和操作用户选择的方法,如 `anchorNode`, `focusNode` 和 `addRange`。两者在所有现代浏览器中基本兼容。
7 1
JavaScript 中的 Range 和 Selection 对象