手机版

详细解释Javascript数据类型的转换规则

时间:2021-09-07 来源:互联网 编辑:宝哥软件园 浏览:

首先,数据类型

有五种基本数据类型:空/未定义/字符串/布尔值/数字

1复杂数据类型:对象

二、数据类型检测

传输门《JS中检测数据类型的几种方式及优缺点小结》

1、类型

2、实例/构造函数

3、对象.原型.字符串.调用(值)

4、对象.原型.字符串

第三,数据类型转换

JS为不同的数据类型提供了自动转换机制。当期望某个类型而不是某个类型时,它会自动转换为期望的类型,这就是我们常说的隐式转换。

1.强制类型转换

在理解隐式转换的规则之前,我们应该先看看强制类型转换。强制类型转换主要使用Boolean()/String()/Number()将各种类型的数据转换为布尔值、字符串和数值数据。

布尔()函数

当要转换的值是至少包含一个字符、非零数字或对象的字符串时,布尔()函数返回true。如果值是空字符串,数字0,未定义或空,它将返回false。

var b1=布尔值(' ');//false-空字符串var b2=布尔值(' hello ');//true-非空字符串var b1=布尔值(50);//true-非零数字var b1=布尔值(null);//false - nullvar b1=布尔值(0);//false-零var b1=布尔值(new object());//true-对象编号()函数

Number()函数的强制类型转换类似于parseInt()和parseFloat()方法,只是它转换的是整数值而不是部分数值。

ParseInt()和parseFloat()方法只转换第一个无效字符之前的字符串,因此“1.2.3”将分别转换为“1”和“1.2”。

用Number(),' 1.2.3 '强制类型转换将返回NaN,因为整个字符串值不能转换为数字。如果字符串值可以完全转换,Number()将决定是调用parseInt()方法还是parseFloat()方法。

String()函数

最后一个强制类型转换方法String()是最简单的,因为它可以将任何值转换为字符串。

要执行这种强制类型转换,您只需要调用toString()方法作为作为参数传入的值,即,将12转换为“12”,将true转换为“true”,将false转换为“false”,等等。

转换为字符串和调用toString()方法的唯一区别是,转换为空值和未定义的值可以生成字符串,而不会引发错误:

var s1=字符串(空);//' null ' var oNull=null;var S2=onull . tostring();//将导致错误2。自动类型转换

谈完强制类型转换,我们再来看看自动类型转换。事实上,自动类型转换是基于强制类型转换的。当预期某个位置应该是某个类型(布尔型、数值型、字符串型)的数据时,会调用相应的强制类型转换函数,自动执行。

*当JavaScript遇到一个预期为布尔值的地方(比如if语句的条件部分)时,会自动将非布尔参数转换为布尔值。系统内部会自动调用布尔函数。

因此,除了以下六个值之外,所有值都会自动转换为true。

未定义的null -0 0或0 NaN ' '(空字符串)*当JavaScript遇到预期为字符串的内容时,它会自动将非字符串数据转换为字符串。字符串函数在系统内部自动调用。

字符串的自动转换主要发生在加法运算中。当一个值是字符串而另一个值是非字符串时,后者被转换为字符串。

*当JavaScript遇到预期数值时,会自动将参数值转换为数值。系统内部会自动调用Number函数。

除了加法运算符可以将运算符转换为字符串之外,其他运算符会自动将运算符转换为数值。

一元运算符还将运算符转换为数值。

ABC '/nan-' ABC '/nan true//1-false//0是本文的全部内容。希望这篇文章的内容能给大家的学习或工作带来一些帮助,也希望大家多多支持我们!

版权声明:详细解释Javascript数据类型的转换规则是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。