JS中的数据类型的转换和普通类型和对象的区别

这段时间在学JS中的类型一遍过程中的数据类型的转换,还有就是我们所说的基本类型(number,string,boolean)和复杂类型(Object:object,function,array)的区别!

01|JS数据类型的转换

下面的话我列举一下我们常常用到的基本类型吧:

数据类型介绍
string字符串类型
number数字类型
boolean布尔类型
null空值
undefined未定义
symbol暂不介绍
objectobject,function,Array

因为之前在学习JavaScript中的类型的时候,Symbol没有做到太多的介绍和详细的说明,在这里也就不展开介绍了描述了,主要介绍其他几种:

01|String

String类型是我们在编程中使用到的最多的类型之一,那么在实际的开发过程中,应该如何讲别的类型转换成String类型呢?

下面针对开发过程中,给定了几种通过别的类型转换成String类型的方法:

方法描述
1. String(x)调用String()方法,传入需要转换的值
2. x.toString()在需要转换的值后面调用toString()方法
3. x+''需要转换的值加上一对引号

Example:

  1. 先通过String()方法,对需要进行转换的值进行转换!

  2. 因为String本身的话就是字符串类型,就没有作举例说明!

    • 如果说这三种方法中,哪种方法的易用性更高,那就是第三种,第三种的话虽然说没有前面两种方法那么明确,但是却是更好用!
    • 直接通过+''将数值转换成了字符串!

 

01|Method:String(x)

 

任意类型转换String01

 

02|Method:x.toString();

 

任意类型转换String02

 

03|Method:x+''

 

任意类型转换String03

 

02|number

number数字类型也是常用的类型 之一,关于其他类型转换成别的类型的方法总共有5种,下面列表中举例说明:

方法描述
1. Number(x)调用该方法里面传入需要转换得值!
2. parseInt(x,10)X:需要转换得值,后面的参数传入进制数:2 8 10 16
3. parseFloat(x)方面将传入的值x转换成浮点数
4. x-0传入的值x将转换成数值
5. +x传入的值x将转换成数值

Example:

其中这五种方法当中,最简单的就是最后两种了,第四种和第五种,这也是在大多数文档中没有提到过的方法!

其中的话,比如说parseInt和parseFloat都是通过解析的方法将其转成想要的数字,parseInt需要指定进制数(当然,默认可以不写 默认的话是转成10进制),而parseFloat是直接转成浮点数!

 

01|Method:Number(x)

 

任意类型转换number01

02|Method:parseInt(x,10)

 

任意类型转换number02

 

03|Method:parseFloat(x)

 

任意类型转换number03

 

04|Method:x-0

 

任意类型转换number04

05|Method:+x

 

任意类型转换number05

03|Boolean

Boolean值的话,在我们开发中运用在条件判断语句中非常多,比如说if语句中,大多数是if中,当然有些运算符会返回布尔值:

下面有两种方法还有对应的集中falsy值介绍:

方法描述
1. Boolean(X)将X传入Boolean方法中会拿到转换后的Boolean(布尔)值!
2. !!X通过!!感叹号得到对应的X的布尔值!

Example:

这两种方法,都应该是比较好理解的,两种方法相比较来说,第一种更具有辨识性,第二种的话更具有易用性,当然需要理解这种方法的情况下才能够更好地使用!

 

01|Boolean

任意类型转换Boolean01

 

02|!!x

 

任意类型转换Boolean02

 

03|falsy值 该值会自动转换成Boolean值并且值为false
falsy值介绍
1. undefined未定义的
2. null空值
3. false错误的
4. 0数字0
5. NaN (Not a Number)Nan表示不是数字 about NaN By MDN
6. ""或者是''空字符串

以上的falsy值很好地说明了,哪些值为false,除此之外的值转换成Boolean值之后都为true!

 

04|Null and Undefined

这两种值都是在定义的时候表现出来的,其中的表现形式为:

操作介绍
var a;a=undefined;(如果只是对一个变量进行声明的话没有赋值,默认为undefined)
var a=null;a=null;对一个变量进行声明,但是如果不想赋值可以给定位null变量值为空!
var a=3;a=null;对一个变量赋值,然后又通过null对其进行覆盖,此时的变量就为null!
var a=c;a=undefined;对一个变量赋值,然后又通过null对其进行覆盖,此时的变量就为undefined!

 

05|Object include object,function,and Array

Object:对象,其实从字面意思上面来讲还是比较好理解的,就是对象的意思,但是在JavaScript中Object对象不仅仅包含,Object,还包括function(函数),Array(数组)

其中关于数据类型的转换对对象来说就没有这个说法,此时你可能会问:为什么呢?

因为对象称之为:复杂类型或者是合成类型,对于我们常常来说的对象就是封装了别的类型,就是常常说到的number类型,String类型或者是Boolean类型,还包括function,和Array也是对象!

 

02|类型和对象的区别

其中类型我们刚刚在上面介绍的时候讲到了,包括了原始类型或者说是普通类型和合成类型或者说是复杂类型!

但是可以明白的是,对象是一种特殊的类型,区别于普通类型之外的但是又包含普通类型的类型!(包含了number,String,Boolean)

如果说要介绍它们的区别,可能要通过内存才能够很清楚很直观的体现出来!

这里我通过画图简单介绍一下类型和对象:

type and Object different_01

type and Object different_02

type and Object different_03

说在最后:

可能关于类型和对象的解释总结的不够到位,但是我会慢慢学习相关的一些知识,对原有的Blog进行补充说明,如有疑问还请联系我的Github:CharlieSmith97 !

在javaScript中有关对象的概念还不清楚的朋友可以参考阮一峰老师的javaScript教程:对象