美文网首页
JavaScript的数据类型

JavaScript的数据类型

作者: 青果果 | 来源:发表于2018-10-22 00:19 被阅读0次

    JavaScript的数据类型

    Java的数据类型分为基本类型和引用类型
    基本类型可以分为三类,字符类型char,布尔类型boolean以及
    数值类型byte、short、int、long、float、double

    JavaScript 数据类型
    在 JavaScript 中有

    5 种不同的数据类型:
    • string
    • number
    • boolean
    • object
    • function
    2 个不包含任何值的数据类型:
    • null
    • undefined
    3 种对象类型:
    • Object
    • Date
    • Array
    注:Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。
    

    Number

    JavaScript不区分整数和浮点数,统一用Number表示
    支持四则运算和Java一致
    以下都是合法的Number类型:

    123; // 整数123
    0.456; // 浮点数0.456
    1.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5
    -99; // 负数
    NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示
    Infinity; // Infinity表示无限大,当数值超过了Number所能表示的最大值时,表示为Infinity
    

    字符串

    Java中字符串是有双引号括起来的"hello world"
    JavaScript中字符串是以单引号'或双引号"括起来的任意文本,比如'abc'"xyz"

    布尔值

    和Java一致有两种值:true 和 false,与运算或运算都和Java一致
    可以直接用true、false表示布尔值,也可以通过布尔运算计算出来:

    true; // 这是一个true值
    false; // 这是一个false值
    2 > 1; // 这是一个true值
    2 >= 3; // 这是一个false值
    

    数组

    数组是一组按顺序排列的集合,集合的每个值称为元素
    JavaScript的数组可以包括任意数据类型
    这一点和Java不同,Java的只能存放同种类型

    [1, 2, 3.14, 'Hello', null, true];
    

    null和undefined

    null表示一个“空”的值,它和0以及空字符串''不同,0是一个数值,''表示长度为0的字符串,而null表示“空”,这个意义和Java中的一致

    但是相比Java多了一个undefined,它表示“未定义”

    JavaScript的设计者希望用null表示一个空的值,而undefined表示值未定义
    事实证明,这并没有什么卵用,区分两者的意义不大
    大多数情况下,我们都应该用null
    undefined仅仅在判断函数参数是否传递的情况下有用

    ==和===

    Java中==来判断是否相等,基本数据类型比较的是值
    引用类型比较的是地址值

    但是JavaScript多了一个====

    • 第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;

    • 第二种是===比较,它不会自动转换数据类型
      如果数据类型不一致,返回false,如果一致,再比较

    由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较
    

    NaN

    这个更加特殊,自己跟自己都不等,恐怖
    NaN这个特殊的Number与所有其他值都不相等,包括它自己:

    NaN === NaN; // false
    

    唯一能判断NaN的方法是通过isNaN()函数:

    isNaN(NaN); // true
    

    要注意浮点数的相等比较:

    1 / 3 === (1 - 2 / 3); // false
    

    这不是JavaScript的设计缺陷。浮点数在运算过程中会产生误差
    因为计算机无法精确表示无限循环小数。要比较两个浮点数是否相等
    只能计算它们之差的绝对值,看是否小于某个阈值:

    Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true
    

    相关文章

      网友评论

          本文标题:JavaScript的数据类型

          本文链接:https://www.haomeiwen.com/subject/vayvzftx.html