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

JavaScript中的数据类型

作者: Shaw007 | 来源:发表于2018-10-23 17:48 被阅读0次

    在此记录下学习JavaScript中数据类型的笔记。

    一、特殊情况
    1、null 与 undefined, JS由于设计问题,有两个表示为空的,一个是null, 一个是undefined, 一般var = a,会被变量提升到作用域顶部,变量没有赋值时是undefined,书写习惯常用undefined表示不想现在赋值的非对象;null 则表示不存在,其实两者意义差不多,其if返回值都是false, 书写习惯常用null表示不想赋值的对象Object。另外两者在转换为数值时返回值不同,前者返回NaN, 后者返回0

    + undefined
    NaN
    + null
    0
    

    2、typeof可用于判断数据类型,但typeof null 返回值为"object",是由于设计之初模仿Java。

    3、 JavaScript共有7种数据类型,number, string, boolean, symbol, null, undefined, object, 其中数组与函数均属于对象。object转为布尔值均为true, 即[],{}if的返回值为true, 返回值为false的只有undefined, null, 0, NaN, ''这五种,除此之外If返回值均为true

    !![]
    true
    !!{}
    true
    
    

    4、对象就是一组"key-value"集合,是一种无序复合数据集合,为复杂数据类型,其中Key为字符串,value可为任何值包括对象。

    5、对象的赋值默认是copy其地址,即引用原对象内存地址,函数传递通常也是传递的引用,若要拷贝原值,可以用Object.assign_.cloneDeep(obj)

    object_js.png

    6、给属性赋值时会JavaScript先将键名隐式转换成字符串,故传入对象其将会被转为object Object

    7、NaN == NaN为false,NaN属于number类型

    8、JS不能正确表示UxFFFF以上的字符,对整数及浮点数的表示均用64位二进制数表示即双精度浮点数。具体浮点运算问题可参考,字符用16位二进制表示。

    9、delete返回为true并不表示该值存在且被删除完。

    10、In 不能识别哪些属性是对象自身,哪些是继承的

    11、八进制以0xx开头,需要额外注意

    12、Base64是一种基于64个可打印字符来表示二进制数据的表示方法。可将任意值转成 0~9、A~Z、a-z、+和/这64个字符组成的可打印字符,btoa():任意值转为 Base64 编码,atob():Base64 编码转为原来的值,要将非 ASCII 码字符转为 Base64 编码,必须中间插入一个转码环节(encodeURIComponent,decodeURIComponent),再使用这两个方法。

    相关文章

      网友评论

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

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