美文网首页
js中的数据类型

js中的数据类型

作者: 索伯列夫 | 来源:发表于2018-10-04 23:50 被阅读0次

    参考阮一峰javascript教程
    在js数据类型做一些笔记,和之前学习的c/c++略有不同,把感觉不太准的地方做一个记录。

    一、数据类型

    • number
    • string
    • object
    • null
    • boolean
    • undefined
    • null
      (可以用typeof运算符来判断值到底是什么类型,instanceof可以区分数组和对象)

    1.null, undefined, boolean

    null与undefined的区别

    null表示空值,即该处的值现在为空。调用函数时,某个参数未设置任何值,这时就可以传入null,表示该参数为空。
    undefined表示“未定义”,比如

    var i;
    i //undefined
    
    function f(x) {
      return x;
    }
    f() //undefined
    
    var o = new Object();
    o.p //undefined
    
    function f(){}
    f() //undefined
    

    boolean

    转化规则(以下的六个值会被转为false,其余的都是true)

    • undefined
    • null
    • false
    • 0
    • NaN
    • " " 或 ' '

    2.number

    熟悉几个东西~~~

    NaN

    NaN是 JavaScript 的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。

    5 - 'x' // NaN
    0 / 0 // NaN
    

    NaN不是独立的数据类型,而是一个特殊数值,它的数据类型依然属于Number。

    Infinity

    Infinity表示“无穷”,且有正负无穷之分

    // 场景一
    Math.pow(2, 1024)
    // Infinity
    
    // 场景二
    0 / 0 // NaN
    1 / 0 // Infinity
    

    还有一些方法,不做详细的解释了,用到了再查吧~

    3.string

    没啥说的。看教程。

    4.object

    回顾一点点

    对象的引用

    如果不同的变量名指向同一个对象,那么它们都是这个对象的引用,也就是说指向同一个内存地址。修改其中一个变量,会影响到其他所有变量。

    var o1 = {};
    var o2 = o1;
    
    o1.a = 1;
    o2.a // 1
    
    o2.b = 2;
    o1.b // 2
    

    上面代码中,o1和o2指向同一个对象,因此为其中任何一个变量添加属性,另一个变量都可以读写该属性。

    此时,如果取消某一个变量对于原对象的引用,不会影响到另一个变量。

    var o1 = {};
    var o2 = o1;
    
    o1 = 1;
    o2 // {}
    

    上面代码中,o1和o2指向同一个对象,然后o1的值变为1,这时不会对o2产生影响,o2还是指向原来的那个对象。

    但是,这种引用只局限于对象,如果两个变量指向同一个原始类型的值。那么,变量这时都是值的拷贝。

    var x = 1;
    var y = x;
    
    x = 2;
    y // 1
    

    上面的代码中,当x的值发生变化后,y的值并不变,这就表示y和x并不是指向同一个内存地址。

    其他

    • 属性的查看:Object.keys
    • 属性的删除:delete
    • 属性是否存在:in
    • 属性的遍历:for...in循环

    二、数据类型转化

    任意类型转字符串:

    • String(x)


      String
    • x.toString()


      toString
    • x+''


      ''

    任意类型转数字

    • Number(x)
    • parseInt(x,10)
    • parseFloat(x)
    • x -0
    • +x

    任意类型转布尔

    • Boolean(x)
    • !!x

    相关文章

      网友评论

          本文标题:js中的数据类型

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