javascript 隐性类型转换步骤

原文:javascript 隐性类型转换步骤

这里说的隐性类型转换,是==引起的转换。

  1. 如果存在NaN,一律返回false
  2. 再看有没有布尔,有布尔就将布尔转换为数字
  3. 接着看有没有字符串, 有三种情况,对方是对象,对象使用toString进行转换;对方是数字,字符串转数字;对方是字符串,直接比较;其他返回false
  4. 如果是数字,对方是对象,对象取valueOf进行比较, 其他一律返回false
  5. null, undefined不会进行类型转换, 但它们俩相等

这个顺序一定要死记,这是面试时经常问到的。

下面是一些杂题,自己做做


0 == undefined

1 == true

2 == {valueOf: function(){return 2}}

NaN == NaN

 8 == undefined

1 == undefined

 null == {toString: function(){return 2}}

 0 == null

 null == 1

 { toString:function(){ return 1 } , valueOf:function(){ return [] }} == 1
时间: 2024-07-28 21:06:22

javascript 隐性类型转换步骤的相关文章

详解JavaScript中双等号引起的隐性类型转换_基础知识

引子 if语句应该是程序员用的比较多的语句,很多时候都要进行if判断,if语句一般用双等号来判断前后两个元素是否是一致的,假如是一致,那么返回是true,然后执行下面的语句,否则,执行别的语句.本文所说的隐性类型的转换,说的是==引起的转换.举个简单的例子,双等号不是全等号,全等号是"==="三个等号,语句"1"==1,那么一般情况下是前面的字符串"1"转换为数字1,然后进行比较.通过这个例子应该了解了什么是隐性类型的转换了吧! 隐性类型转换步骤

JavaScript数据类型转换的注意事项_javascript技巧

1.字符串的不可变性  字符串定义了后,会一直占据内存空间,企鹅该处内存空间(栈)不可被重新赋值. 2.短路运算 ||.&& 二元运算符,返回参与运算的操作数的原值(原数据类型和原数据), 运算结束后,返回导致运算结束的那个操作数. 3.三元运算符 code1?code2:code3;   与if-else 不同: 返回code2或code3的值----code2,code3   都可以空的{}代替:       不能写break,continue. 4.NaN NaN !=NaN, 任何

老生常谈javascript的类型转换_javascript技巧

目录: 1 : 伪对象  2 : 转换为字符串  3 : 数字转字符串  4 : 转换为数字  5 : 转换为Boolean  6 : Number()和parseInt()的区别  7 : String()和toString()的区别 1 : 伪对象 伪对象:javascript是一门很有意思的语言,即便是基本类型,也是伪对象,所以他们都有属性和方法. 变量a的类型是字符串,通过调用其为伪对象的属性length获取其长度 . <script> var a="hello javasc

JavaScript的类型转换(字符转数字,数字转字符)

javascript|转换 在Java中,基本类型之间的强制转换也不是这样的,比如,整数要转换成字符串,必须使用Integer.toString()静态方法或者String.valueOf()静态方法,把字符串转换为整数,必须使用Integer.valueOf().可见,不能把JavaScript中的类型转换看作为"强制类型转换".在JavaScript中,Double类型和Int类型都是看作为Number对象,因此无论是typeof 1还是typeof 1.0,都是返回number.

javascript 数据类型转换(parseInt,parseFloat)_基础知识

javascript有两种数据类型的转换方法: (一)将整个值从一种类型转换为另一种数据类型(称作基本数据类型转换) (二)从一个值中提取另一种类型的值,并完成转换工作 基本数据类型转换的三种方法: 1.转换为字符型:String(); 例:String(678)的结果为"678" 2.转换为数值型:Number(); 例:Number("678")的结果为678 3.转换为布尔型:Boolean(); 例:Boolean("aaa")的结果为t

JavaScript的类型转换(字符转数字 数字转字符)_javascript技巧

在Java中,基本类型之间的强制转换也不是这样的,比如,整数要转换成字符串,必须使用Integer.toString()静态方法或者String.valueOf()静态方法,把字符串转换为整数,必须使用Integer.valueOf(). 可见,不能把JavaScript中的类型转换看作为"强制类型转换". 在JavaScript中,Double类型和Int类型都是看作为Number对象,因此无论是typeof 1还是typeof 1.0,都是返回number.这样我们可以不用去管是I

JavaScript字符串类型转换成日期类型方法

如果字符串中有空格或是其他分割符分割,可以用split方法先拆分,返回一个数组,再把这 个数组里的年月日作为参数传到new Date()里生成日期类型: 如过没有特殊分隔符,可以用substr(x,y)方法来取子字符串来生成日期,substr(x,y )里,x表示取字串的开始位置,y表示子串的长度! 如果字符串以"/"分割可以用Date.parse(datestr)来转换 <mce:script language="JavaScript"><!--

Javascript 强制类型转换函数_javascript技巧

1. Boolean(value):把值转换成Boolean类型: 2. Nnumber(value):把值转换成数字(整型或浮点数): 3. String(value):把值转换成字符串. 我们先来看Boolean():在要转换的值为"至少有一字符的字符串"."非0的数字"或"对象",那么Boolean()将返回true,如果要转换的值为"空字符串"."数字0"."undefined"

javascript 字符串类型转换成日期类型几种方法

如果字符串中有空格或是其他分割符分割,可以用split方法先拆分,返回一个数组,再把这个数组里的年月日作为参数传到new date()里生成日期类型: 如过没有特殊分隔符,可以用substr(x,y)方法来取子字符串来生成日期,substr(x,y)里,x表示取字串的开始位置,y表示子串的长度! 如果字符串以"/"分割可以用date.parse(datestr)来转换. 看下实例以"-"分开 var checkstartdate = document.form1.c