视频链接:

JavaScript相等()和全等(=)运算符的区别 - Web前端工程师面试题讲解

参考链接:

JavaScript == 与 === 区别

区别

对于string、number 等基础类型

  • 不同类型的比较

    • 相等(==)先转换成对应的类型后的值,再进行比较判断;
    • 全等(===)则不会进行转换,而是直接返回不相等的结果
  • 同类型比较
    • 两个进行该类型的“值”的比较

对于 Array,Object 等高级类型

  • ===== 没有区别,都会通过指针地址进行比较
//不同类型
console.log(6 == "6");
console.log(6 === "6");
//同一类型
console.log(6 == 6);
console.log(6 === 6);


布尔型 与 数值

//相等就把true变为1,false变为0
console.log(true == 1);
console.log(false == 0);
//全等不会把布尔型数值转换
console.log(true === 1);
console.log(false === 0);


未知类型 与 数值/未知类型

//一个字符串里只有空格或什么都没有就转换成 空
//而 0 默认转换成 空
console.log('' == 0);
console.log(' ' == 0);

//null表示空值,undefinded表示未声明/定义的变量
//它们都是假值,所以相等
console.log(null == undefined);
// null、undefined都是特殊值,不能转换成除自己以外的任何值
console.log(null == 0);
console.log(undefined == '');


字符串 与 布尔类型

//'false'字符串不会转换
//而 false则会因 相等 转变成 0
console.log('false' == false);
//但是字符串可以变为数值,前提当然是该字符串为 '0'
console.log('false' == 0);

? + 别的值

//NaN是连自己都不能识别的值,那么无论其他的这么样也都同一个结果
console.log(NaN == NaN);
console.log(NaN == false);
console.log(NaN === false);


对象之间

var a = {};//a创建了地址1
var b = {};//b创建了地址2
var c = a; //a辅值给c,那么c与a都会最终指向同一对象,也即c指向a
//a与b的地址不一致,所以都为false
console.log(a==b);
console.log(a===b);
//之前c指向a,c的地址就是a的地址,所以都为true
console.log(a==c);
console.log(a===c);



蛋老师的视频图解

【前端面试】(三)JavaScript相等(==)和全等(===)运算符的区别的更多相关文章

  1. 前端面试之JavaScript中数组的方法!【残缺版!!】

    前端面试之JavaScript中数组常用的方法 7 join Array.join()方法将数组中所有元素都转化为字符串并连接在-起,返回最后生成的字 符串.可以指定一个可选的字符串在生成的字符串中来 ...

  2. 前端面试之JavaScript的基本数据类型!

    前端面试之JavaScript的基本数据类型! JS的基本数据类型 数字 字符串 布尔值 JavaScript中有两个特殊的原始值: null (空) 和undefined (未定义), , 它们不是 ...

  3. 前端面试之JavaScript中的闭包!

    前端面试之JavaScript中的闭包! 闭包 闭包( closure )指有权访问另一个函数作用域中变量的函数. ----- JavaScript 高级程序设计 闭包其实可以理解为是一个函数 简单理 ...

  4. 前端面试:问到GET和POST两种区别

    最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. "标准答案"(本标准答案参考自w3schools): GET在浏览器回退时是无害的,而P ...

  5. 前端面试回顾---javascript的面向对象

    转:https://segmentfault.com/a/1190000011061136 前言 前一阵面试,过程中发现问到一些很基础的问题时候,自己并不能很流畅的回答出来.或者遇到一些基础知识的应用 ...

  6. 前端面试之Javascript

    1,JS基本的数据类型和引用类型: (1)基本数据类型:number,string,null,undefined,symbol--栈: (2)引用数据类型:object,array,function- ...

  7. 前端面试整理——javascript算法和测试题

    (1)算法: 1.斐波那契数列:1.1.2.3.5.8.13.21.输入n,输出数列中第n位数的值. 方案一: function fn(n){ var num1 = 1, num2= 1, num3 ...

  8. 前端面试之JavaScript中this的指向【待完善!】

    JavaScript中this的指向问题! 另一个特殊的对象是 this,它在标准函数和箭头函数中有不同的行为. 在标准函数中, this 引用的是把函数当成方法调用的上下文对象,这时候通常称其为 t ...

  9. web前端面试第一次[javascript函数和方法的区别]

    //函数 function f1(){ console.log("我是函数"); } //调用函数 f1(); //创建一个空对象 var obj = {} //把函数定义到对象里 ...

随机推荐

  1. 分布式应用运行时 Dapr 1.7 发布

    Dapr 是一个开源.可移植的.事件驱动的运行时,可以帮助开发人员构建在云和边缘上运行的弹性的.微服务的.无状态和有状态应用程序,并且关注于业务逻辑而不用考虑分布式相关的问题. 分布式相关的问题交给D ...

  2. 2021.08.09 P6037 Ryoku的探索(基环树)

    2021.08.09 P6037 Ryoku的探索(基环树) P6037 Ryoku 的探索 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 重点: 1.树的性质 2.基环树的性质 ...

  3. 从零开始安装搭建win10与ubuntu20.04双系统开发环境——集安装、配置、软件、美化、常见问题等于一体的——超详细教程

    目录 **前言 ** 关于系统安装配置与软件安装 一.Win10安装ubuntu20.04双系统 1.按照自己的需求分区 2.配置软件镜像源 软件包管理工具介绍 更换APT源--使用国内镜像 3.解决 ...

  4. C++ 类成员指针

    C++的类成员指针是一种奇葩的指针. 假设现在我们要表示一个三维的点,现在有两种定义方式: struct point1{ int x, y, z; }; struct point2{ int c[3] ...

  5. .NET Core企业微信网页授权登录

    1.开发前准备 参数获取 corpid 每个企业都拥有唯一的corpid,获取此信息可在管理后台"我的企业"-"企业信息"下查看"企业ID" ...

  6. 接口测试实战| GET/POST 请求区别详解

    1.请求行的 method 不同:2.POST 可以附加 body,可以支持 form.json.xml.binary等各种数据格式:3.从行业通用规范的角度来说,无状态变化的建议使用 GET 请求, ...

  7. 技术分享 | Web自动化之Selenium安装

    Web 应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作.但是手工执行的任务容易出现人为的错误,也比较费时间.因此,将这些任务自动化,就可以消除人为因素.S ...

  8. 项目开发字符串模型strstr_while

    #define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <string.h> #include <std ...

  9. XCTF练习题---MISC---hit-the-core

    XCTF练习题---MISC---hit-the-core flag:ALEXCTF{K33P_7H3_g00D_w0rk_up} 解题步骤: 1.观察题目,下载附件,发现是一个.core文件 2.打 ...

  10. 在vue-cli中安装scss,且可以全局引入scss的步骤

    简历魔板__个人简历模板在线生成 在写vue的css样式时,觉得需要css预处理器让自己的css更加简洁.适应性更强.可读性更佳,更易于代码的维护,于是在vue-cli脚手架采用scss.写过的人都知 ...