首先,数据类型
有五种基本数据类型:空/未定义/字符串/布尔值/数字
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是本文的全部内容。希望这篇文章的内容能给大家的学习或工作带来一些帮助,也希望大家多多支持我们!