js ==和===以及!= 和 !==的区别

一、js == 与 === 的区别[转]

1. 对于string,number等基础类型,==和===是有区别的

  1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等

  2)同类型比较,直接进行“值”比较,两者结果一样

2. 对于Array,Object等高级类型,==和===是没有区别的,进行“指针地址”比较

3. 基础类型与高级类型,==和===是有区别的

  1)对于==,将高级转化为基础类型,进行“值”比较

  2)因为类型不同,===结果为false

== 和 != 比较若类型不同,先尝试转换类型,再作值比较,最后返回值比较结果,而 === 和 !== 只有在相同类型下,才会比较其值

 1 var num = 1;
 2 var str = ‘1‘;
 3 var test = 1;
 4 test == num   //true 相同类型 相同值
 5 test === num  //true 相同类型 相同值
 6 test !== num  //false test与num类型相同,其值也相同, 非运算肯定是false
 7 num == str   //true  把str转换为数字,检查其是否相等。
 8 num != str   //false  == 的 非运算
 9 num === str  //false  类型不同,直接返回false
10 num !== str  //true   num 与 str类型不同 意味着其两者不等 非运算自然是true啦
时间: 2024-10-12 22:46:16

js ==和===以及!= 和 !==的区别的相关文章

js apply 和call的区别

function Person(name, profession) { this.name = name; this.profession = profession; this.speak = function () { document.writeln("我叫"+name+",我是一位"+profession); } } function Student(name,profession) { Person.call(this,name,profession); }

js中声明函数的区别

在JS中有两种定义函数的方式, 1是var aaa=function(){...} 2是function aaa(){...} var 方式定义的函数,不能先调用函数,后声明,只能先声明函数,然后调用. function方式定义函数可以先调用,后声明.请看代码: var声明时,只有变量声明提前了,变量的初始化代码仍在原位置.然而,使用函数声明的话,函数名称和函数体都会提前.两种声明得到的函数都不可删除 //aaa();这样调用就会出错                var aaa = funct

jQuery的ready与js的load事件的区别

摘自:http://www.cnblogs.com/see7di/archive/2011/07/15/2239677.html 为了理解这两个事件的异同,读者应该先了解HTML文档加载的顺序. DOM文档加载是按顺序执行的,这与浏览器的渲染方式有关系.一般浏览器渲染操作的顺序大致按如下几个步骤来完成.(1) 解析HTML结构.(2) 加载外部脚本和样式表文件.(3) 解析并执行脚本代码.(4) 构造HTML DOM模型.(5) 加载图片等外部文件.(6) 页面加载完毕. 具体说明如下.1. 执

js中const,var,let区别

今天面试,被问了个问题,const, var, let的区别,当时就懵圈了,var 知道,const.let 是什么鬼??? 回来一百度,找到一篇通俗易懂的介绍,先取之收藏,以备忘.主要内容是:js中三种定义变量的方式const, var, let的区别. 摘自:http://www.cnblogs.com/ksl666/p/5944718.html 1.const定义的变量不可以修改,而且必须初始化. 1 const b = 2;//正确 2 // const b;//错误,必须初始化 3 c

JS中NULL和undifined区别及NULL的作用

1.博客地址:http://www.cnblogs.com/eastday/archive/2010/03/03/1677324.html 2.参考地址2:https://www.zhihu.com/question/35677602/answer/63984217 JS中Null与Undefined的区别 在JavaScript中存在这样两种原始类型:Null与Undefined.这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined?

jquery data方法取值与js attr取值的区别

<a data-v="3"></a> jquery data方法的运行机制: 第一次查找dom,使用attributes获取到dom节点值,并将其值存到缓存里,第二次操作的时候,还是先找到dom,但是这次取值是直接从缓存读了,少了一步对dom的操作 attr()方法每次都要操作dom,性能上差点儿 $('a').data('v')取到的值是页面初次加载的缓存值,以后如何更改,在页面上都不会改变,但缓存值会变,可以传给i/o请求使用 document.getEle

js 对象与函数的区别

1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title></title> 6 7 <script type="text/javascript"> 8 //第一种定义方式 9 function fn1(){ 10 alert("fn1"); /

JS与JAVA数据类型的区别

JavaScript与Java数据类型的区别 阅读目录 Number String Boolean Null Undefined Object 今天开始正式认真学习js,虽然在平常j2ee开发中也经常用到JS但并不精通,这次随笔记下js与Java数据类型的不同之处 回到顶部 Number 与java不同,js作为弱类型语言即使在浮点数与整数上也未作明确区分,Number值可以是var a = 5 or  5.5,以及其他进制如八进制 var a  = 070.甚至是科学计数 var a = 3.

JS中call和apply区别有哪些 记录

一.call和apply区别 传递参数的方式.用法上不同,主要是参数不完全同 (1).B.Function.call(A,arg,arg) 这个例子是讲A对象“调用”B对象的Function(某个具体的方法). 注意call方法中的参数arg: a) arg的个数为零或多个; b) arg可以是任何类型,包括Array. call在这里译为“调用”,在JS中可以理解为“A对象调用B对象的某个方法”: (2).B.Function.apply(A,args) 这个例子是讲A对象“应用”B对象的Fu

原型模式故事链(3)--JS的数据类型、以及区别、区分、转化

上一章--原型链讲解:传送门:https://segmentfault.com/a/11... 在上一章讲解原型链时提到了:所有的引用类型都有一个_proto_属性,称之为隐式原型.那么引用类型是什么鬼? 尽量简单的讲解一下javascript中的数据类型:在JS中有两大数据类型:1.基本数据类型,也称为值类型.2.复杂数据类型,也成为引用类型 . 值类型:Number.String.Boolean.Null.Undefined引用类型:Object.Array.Function 所以JS一共有