首先说说JS数据类型的分类。分为标准型和typeof类型(即控制台打印,浏览器区分)

标准型:基本类型中有:number、string、boolean、undefined、null  复合类型:object (对象,array数组也算在里面了)。

typeof型:number、string、boolean、undefined、function、object 。

以上两者主要区分为: 公共的都有number(NAN也是number类型中的)、string、boolean、undefined、object(包含了array和null) , typeof里的有function即函数。然后Null  typeof类型其实也是object。在标准型中,它是特殊的一个,叫空对象。空对象做不了属性操作同时不能添加自定义属性,也没有方法,这里需要特别注意的是它跟空数组的区别,空数组虽然也是对象类型,但不能把它跟空对象混为一谈,因为它本身是有属性和方法的,只是暂时内部没有成员而已。数组本身也是有下标有长度的,对象是不具有下标和长度一说的。

数据类型中的方法

1.parseInt   从左向右去查看需要转换的目标,如果碰到一位是非数字的,结束执行,返回之前的数字。 parseInt   (100px)=100;

2. parseFloat 从左向右去查看需要转换的目标,如果碰到一位是非数字的,结束执行,返回之前的数字,可识别小数点。parseFloat (.12px)=0.12,parseFloat (13.24abc)=13.24

3.Number 强制转换 从左向右看完所有的字符,如果符合数字规则就转换它,不然就转为NaN. Number (false)=0,Number(null)=0,Number(document)=NaN,转换空字符串结果也为0,带空格的字符串也为0, 空对象则为NAN。转换undefined则为NAN.特殊情况面对数组时,如果数组为空,则结果为0,如果数组只有一个成员,则用这个成员去转换,如果数组成员为多个时,则为NAN。Number(.12)=0.12.

4.字符串转换方法 var a=123, a=a.toString()或者a=String(a)

5.Boolean 布尔值转换  它对空字符串的转换为false,空格字符串则为true。真:true,非空字符串,非0数字,非空对象,假: false, 空字符串,0,NaN,null,undefined。

6 强制类型转换,或者显示类型转换
   parseInt/parseFloat/Number

7  隐式类型转换:
    浏览器自己进行转换,其他类型转换成数字,主要调去Number

+,+=
         1. 当加号左右两测有一位是字符串是,会把另外一也转成字符串
         2. 使用+号时,两边没有字符串时,优先尝试把左右两侧都转换成数字,如果不能转换成数字就转换成字符串进行连接

-,*,/,%,-=,*=,/=,%=
          运算符左右两侧转换成数字进行运算

例子:

var a = 10;
var b = "10";
console.log(a + b);
// + 号 碰到字符串的时候,就会把两侧的内容都转换成字符串,执行字符串连接
var a = 10;
var b = true;
console.log(a + b);

// + 号的两侧没有字符串,则优先转换成数字,进行+法运算
var a = 10;
var b = function(){};
console.log(a + b);
// + 号的两侧没有字符串,则优先转换成数字,进行+法运算,如果不能转换成数字,则转换成字符串进行字符串连接。

-,*,/,% 这些运算符都是只有数字运算的功能,所以在使用的时候,都会去把其他类型转换成数字。

关系运算符
<、>、<=、>=、==、!=、===、!==
比较后都会返回布尔值
== 和 ===,以及 !=和!==的区别

== 和 != 会进行隐式类型转换,把左右两侧的数据类型转换成一样的之后,再去比较

===和!== 进行比较的时候,也会比较数据类型,数据类型不会进行比较,判定两边不相等

&& 与、|| 或、! 否  返回的结果都是 true和 false

简短总结归类:

数据类型:
1. 标准划分:
基本类型: number/string/boolean/undefined/null
对象类型(复合类型):object(包含Array)
2. typeof(运算符,查看数据类型):
number:
Number.POSITIVE_INFINITY 正无穷
Number.NEGATIVE_INFINITY 负无穷
从负无穷到正无穷的数字以及NaN

string:包含在引号''中的一串字符
undefine:无定义
boolean: true、false
object: Array、object、Element、null
function :   null:空对象 (null不能进行属性操作)数据类型: object

NaN: 非数字
1. NaN不等于任何东西,并且不等于它自己
2. 检测一个内容是否是NaN的时候,可以使用isNaN();
3. 数据类型:number
4. isNaN() return: true/false, isNaN隐式调用了number

强制类型转换:
强制转换为数字:
parseInt(要转换的内容)、parseFloat(要转换的内容)
从左向右一位位转换,碰到一位非数字,就把之前的内容提取出来,如果第0位就是非数字,结果NaN
Number(要转换的内容):
先看完整个内容,然后整体去转换数字
1. true 1/false 0;
2. [] 0
3. ["2"] 转换数组的第0位
4. [2,3] 转换NaN
返回值都是一个数字

强制转换为字符串
1. 要转换的内容.toString()
2. String(要转换的内容)

强制转换为布尔值:
Boolean(要转换的内容);

1. 真: true、非0数字、非空对象、非空字符串

2. 假: false、NaN、0、null、空字符串、undefined

JS中的数据类型小结的更多相关文章

  1. js中的数据类型

    JS中的数据类型: ——数字  (number)NaN ——字符串(string) ——布尔  (boolean)——函数  (function)     也是对象的一种 ——对象  (object) ...

  2. 如何判断js中的数据类型?

    js六大数据类型:number.string.object.Boolean.null.undefined string: 由单引号或双引号来说明,如"string" number: ...

  3. 如何判断js中的数据类型

    如何判断js中的数据类型:typeof.instanceof. constructor. prototype方法比较 如何判断js中的类型呢,先举几个例子: var a = "iamstri ...

  4. [转]如何判断js中的数据类型

    原文地址:http://blog.sina.com.cn/s/blog_51048da70101grz6.html 如何判断js中的数据类型:typeof.instanceof. constructo ...

  5. 浅谈js中的数据类型,使用typeof获取js数据类型

    JS中的数据类型 1):Undefined——值未定义 注:Undefined类型只有一个值,即特色的undefined.在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined ...

  6. 如何判断js中的数据类型(转)

    如何判断js中的数据类型:typeof.instanceof. constructor. prototype方法比较 如何判断js中的类型呢,先举几个例子: var a = "iamstri ...

  7. 判断js中的数据类型

    如何判断js中的数据类型:typeof.instanceof. constructor. prototype方法比较 如何判断js中的类型呢,先举几个例子: var a = "iamstri ...

  8. js中的数据类型及其转换

    Js中的数据类型 Js中的数据类型一共有六种,即number,string,boolean,underfine,null,object. 一,number Number数据类型指的是数字,可以为整型, ...

  9. JS中的数据类型和转换

    一.JS中的数据类型 js中的数据类型可以分为五种:number .string .boolean. underfine .null. number:数字类型 ,整型浮点型都包括. string:字符 ...

随机推荐

  1. bzoj3728: PA2014Final Zarowki

      Description 有n个房间和n盏灯,你需要在每个房间里放入一盏灯.每盏灯都有一定功率,每间房间都需要不少于一定功率的灯泡才可以完全照亮. 你可以去附近的商店换新灯泡,商店里所有正整数功率的 ...

  2. ZOJ - 3469 Food Delivery (区间dp)

    When we are focusing on solving problems, we usually prefer to stay in front of computers rather tha ...

  3. Android中的Activity

    Android四大组件 活动(Activity) 广播接收者(BroadCastReceiver) 服务(Service) 内容提供者(Contentprovider) Activity 先来看And ...

  4. Mysql自动填充测试数据

    前言 最近写了两个小脚本,一个应用于Mysql的自动填充测试数据,另外一个是bash写的定期删除日志文件,两个脚本如何使用,在GitHub上面都有所说明,这里不再赘述,这里主要是想聊一下Mysql的存 ...

  5. C++中堆和栈的完全解析(转)

    内存分配方面: 堆: 操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删 除,并将该结点的空间分配给程序, ...

  6. BFS:noi6044鸣人与佐助

    PS:一道XX到我心态崩溃的好(傻逼)题. 先粘题目: 佐助被大蛇丸诱骗走了,鸣人在多少时间内能追上他呢? 已知一张地图(以二维矩阵的形式表示)以及佐助和鸣人的位置.地图上的每个位置都可以走到,只不过 ...

  7. NYOJ 57 6174问题

    6174问题 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 假设你有一个各位数字互不相同的四位数,把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替 ...

  8. 对图像组成不了解?这样学习Matplotlib必走弯路!

    在学习Matplotlib的过程中,大家一定会遇到这样那样的问题,比如说,背景图怎么设置?坐标轴怎么设置?坐标轴上的刻度值怎么设置?怎样在PyQt中添加Matplotlib绘图模块? 其实想要学好用好 ...

  9. Socket学习总结系列(二) -- CocoaAsyncSocket

    这是系列的第二篇 这是这个系列文章的第二篇,要是没有看第一篇的还是建议看看第一篇,以为这个是接着第一篇梳理的 先大概的总结一下在上篇的文章中说的些内容: 1. 整理了一下做IM我们有那些途径,以及我们 ...

  10. Xmemcached学习笔记

    memcached有三种java客户端 第一种:Com.danga 包下面的memcached,需引入jar(本人用的是memcached-2.5.2.jar 文末附上附件需要的可以下载) 第二种:s ...