不同类型值相比较的规则和类型转换、隐式转换

时间: 2019-05-11阅读: 408标签: 类型

相等运算符(==) 在遇到两个操作数类型不同的时候,要遵守的规则和类型转换 


1、如果-个值是null, 另一个是undefined,则它们相等 
null == undefined //返回true 

2、如果一个值是数字,另一个是字符串,先将字符串转换为数字,然后使用转换后的值进行比较。

1 == "1" //1==1  //结果是true
2 == "1" //2==1  //结果是false


3、如果其中一个值是true,则将其转换为1再进行比较。如果其中一个值是false,则将其转换为0再进行比较。

"1" == true     //1==1 结果是true
0 == false      //0==0 结果是true


4、如果一个值是对象,另一个值是数字或字符串,则将对象转换为原始值,然后再进行比较。对象通过toString()方法或者valueOf()方法转换为原始值,JavaScript语言核心的内置类先尝试使用valueOf(),再尝试使用toString(),除了日期类,日期类只能使用toString()转换,那些不是JavaScript语言核心中的对象则通过各自的实现中定义的方法转换为原始值。

原始值:不可变更的值,包括undefined、null、布尔值、数字、和字符串。

所有的对象都有toString() 和 valueOf()这两个方法。 
toString()方法的作用是,返回一个反映这个对象的字符串。 
valueOf()方法的作用是,一个对象那个如果存在任意原始值,它就默认将对象转换为表示它的原始值。


5、其他不同类型之间的比较均不相等。


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/3650

js 的隐式转换与显式转换

隐式转换:undefined与null相等,但不恒等(===),一个是number一个是string时,会尝试将string转换为number;显示转换一般指使用Number、String和Boolean三个构造函数,手动将各种类型的值

Js的typeof返回哪些数据类型?

JavaScript中的数据类型:值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。引用数据类型:对象(Object)、数组(Array)、函数(Function)。

js安全类型检测

都知道js内置的类型检测,大多数情况下是不太可靠的,例如: typeof 、 instanceof ;typeof 返回一个未经计算的操作数的类型, 可以发现所有对象都是返回object (null是空指针即空对象)

JS中一定要了解的数据类型和数据转换

Js中的类型只有6种,其中基本数据类型有5种分别为string,number,boolen,null,undefined,引用类型有一种,就是object,object是一个大的综合体,在JS中除了那5个基本数据类型以外,其他的一切皆对象。以下是最近自学js整理的一些笔记

JavaScript中的类型转换

稍微有点基础的同学,应该一眼就能看出 [] == [] 输出 false,因为 Object 是引用类型,两个引用类型做 == 比较,如果它们引用的是同一个地址,输出 true,否则输出 false。但是后面几道题可能会有一点点麻烦。

Js复杂判断的更优雅写法

我们编写js代码时经常遇到复杂逻辑判断的情况,通常大家可以用if/else或者switch来实现多个条件判断,但这样会有个问题,随着逻辑复杂度的增加,代码中的if/else/switch会变得越来越臃肿,越来越看不懂

再也不用担心 JavaScript 的数据类型转换了

JavaScript 是一种弱类型或者说动态类型语言。所以你不用提前声明变量的类型,在程序运行时,类型会被自动确定,你也可以使用同一个变量保存不同类型的数据。

从两个角度理解 TypeScript 中的类型是什么?

TypeScript中的类型是什么?本文中描述了两种有助于理解它们的观点。如果 myVariable 的类型为 MyType,则意味着所有可以分配给 myVariable 的值都必须是 MyType 集合的元素。

js类型检测的几种方式总汇

必须要知道js中关于类型的定义。js中有6种基本类型,null,undefined,boolean,string,number,symbol(es6新增的类型)。还有一种引用类型(复杂类型)是object。像是{},function函数,[]数组都是对象。

TypeScript never 类型

在类型理论(数学逻辑中的一种理论)中, 底部类型 是没有值的类型。也称为零或空类型,有时用 falsum(⊥)表示。 数学理论与计算机的发展是相辅相成的,底部类型在计算机科学中也有一定的应用场景。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!

文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯幽默笑话段子句子语录成语大全运营推广