第十二章:第5节JavaScript数据类型相互转换

更新于:2017-11-03 14:02:52

JS与PHP一样是弱语言类型,数据转换是非常简单的,很多时候都是自动转换。


数值型-》字符串型


1.png

1.png

写了两种转换方法,程序有需要时都会自动转字符串型的。


其他数据类型-》数值型


1.png


使用Number这个内置函数转换,在PHP中有类似作用的函数是intval。


楠神列出了几个常见的转换示例,从示例中可看出与PHP有两个不一样的地方,需要特别注意


1)字符串转数值型,如果不是纯数字字符串,转换结果是NaN。这与PHP的结果是不一样的。在PHP中,11行转换结果是0,16行转换结果是7。


2)十六进制纯数字字符串,JS会把它当成十六进制数转成十进制数。而PHP会认为这不是一个纯数字字符串,会转成0。看18行代码。


3)undefined转换结果是NaN,null转换结果是0。


从字符串中提取整数或浮点数函数


看16行代码,假如在JS中就想获取7,而不是NaN,有没有办法获取?


JS 提供了两种把非数字的原始值转换成数字的方法,即 parseInt() 和 parseFloat()。


1.png

1.png

对这两个方法(或者叫函数)想了解更多,可去“W3CSchool”这个手册查询相关介绍。


其他数据类型-》布尔类型


1.png


1)字符串''转成布尔值是假false,其他的都会转成布尔值真true。


特别需要注意:"0"在JS中转成布尔值是true,在PHP中转成布尔值是false。


楠神为什么特别强调这个呢?


因为我们经常会用0表示一个false,而程序中0经常被自动转成字符串'0'。不认清这点,程序会很容易出错的。


2)数值型等于0的和NaN会转成布尔值假false,其他都会转成布尔值真true。


3)undefined和null转成布尔值假false。


提示:大家看这一节内容时可以和《第四章9节PHP数据类型相互转换》的内容对比着看。


本节学习代码》》》