zoukankan      html  css  js  c++  java
  • JS中的数据类型小结

    首先说说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);
    // + 号的两侧没有字符串,则优先转换成数字,进行+法运算,如果不能转换成数字,则转换成字符串进行字符串连接。

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

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

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

    ===和!== 进行比较的时候,也会比较数据类型,数据类型不一样的话,即使值一样,也是false.

    && 与、|| 或、! 否  返回的结果都是 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

  • 相关阅读:
    转:wcf大文件传输解决之道(1)
    转:WCF传送二进制流数据基本实现步骤详解
    创建一个简单的WCF程序2——手动开启/关闭WCF服务与动态调用WCF地址
    创建一个简单的WCF程序
    转:【专题十二】实现一个简单的FTP服务器
    转:【专题十一】实现一个基于FTP协议的程序——文件上传下载器
    转:【专题十】实现简单的邮件收发器
    转:【专题九】实现类似QQ的即时通信程序
    转:【专题八】P2P编程
    转:【专题七】UDP编程补充——UDP广播程序的实现
  • 原文地址:https://www.cnblogs.com/hjj2ldq/p/7446370.html
Copyright © 2011-2022 走看看