视频链接:

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. 【Electron】Electron Icon 图标说明、及常见问题

    [Electron]Electron Icon 图标说明.及常见问题 其实各种打包模块都有相关的文档说明,相关链接如下: electron-builder:https://www.electron.b ...

  2. Docker部署Nginx启动成功,浏览器拒绝访问

    今天下午部署完tomcat和mysql之后就接着部署Nginx,本以为Nginx也和之前两个一样简单,但是就因为标题这个问题,花费了我一个小时纠错. 过程复现: 解决完上一篇博客(https://ww ...

  3. 【分享汇总】25个主题分享,360°领略OpenHarmony最新技术版图

    2021年10月,开放原子开源基金会旗下开源项目 OpenAtom OpenHarmony (以下简称"OpenHarmony") 应邀参加华为2021 HDC 开发者大会,并组织 ...

  4. python中的嵌套

    嵌套:将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套.既可以在列表中嵌套字典,也可以在字典中嵌套列表,甚至在字典中嵌套字典. 一.列表中嵌套字典 1)一般创建方式: student_ ...

  5. HCNP Routing&Switching之组播技术PIM-SM 稀疏模式

    前文我们了解了组播路由协议PIM以及PIM-DM密集模式相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16084310.html:今天我们来聊一聊PI ...

  6. ElasticSearch 设置某个字段不分词

    先说结论:字段类型更改为 'keyword' elasticSearch官方文档中创建index代码如下 PUT /my_store { "mappings" : { " ...

  7. selenium模块无头化浏览器 设置不加载页面css、图片、js

    下面代码基于火狐浏览器,谷歌浏览器代码类似 from selenium import webdriver from selenium.webdriver.firefox.options import ...

  8. Python爬虫__微博某个话题的内容数据

    1 # -*- coding: utf-8 -*- 2 # @Time : 2020/8/18 15:39 3 # @Author : Chunfang 4 # @Email : 3470959534 ...

  9. 网络协议之:Domain name service DNS详解

    目录 简介 DNS的功能 DNS的组成 域名空间Domain name space Name servers DNS的工作流程 DNS资源记录 DNS消息的结构 总结 简介 现在是互联网的世界,大家从 ...

  10. 关于控制台报错“Cannot use import statement outside a module”问题的解决

    问题还原: 1.首先在main.js里 使用ES6语法import引入另外一个js模块. 2.此时将main.js在index.html中通过script标签引入,如下 3.右键通过vscode提供的 ...