• JavaScript数据类型


    1、JS数据类型

    • 值类型:undefined、number、string、boolean、symbol
    • 引用类型:function、object

    2、undefined和null

    2.1、在if语句中,undefined和null都会自动转为false
    // if (!undefined) {
    //   console.log("undefined");
    // }
    // if (!null) {
    //   console.log("null");
    // }
    2.2 null是object类型,undefined就是undefined类型
    //   console.log(typeof null);
    //   console.log(typeof undefined);
    //   console.log(null == undefined); //true
    //   console.log(null === undefined); //false
    2.3 null是空指针对象,转为数值时为0,undefined是一个表示"无"的原始值,转为数值时为NaN
    //   console.log(Number(null)); //0
    //   console.log(Number(undefined)); //NaN
    2.4、出现的场景
    //   console.log(document.getElementById("aa")); //对象为空,结果null
    //   let i;
    //   console.log(i); //变量声明,但是没有赋值,结果为undefined
    //   function fn(x) {
    //     console.log(x);
    //   }
    //   f(); //调用函数时,应该提供的参数没有提供,该参数等于undefined
    //   let o = new Object(); //对象没有赋值的属性,该属性的值为undefined
    //   var x = f();
    //   x; //函数没有返回值时,默认返回undefined

    3、number类型

    3.1 为什么 0.1+0.2!=0.3

    JavaScript 采用“IEEE 754 标准定义的双精度64位格式”表示数字,不区分整数值和浮点数值,所有数字均用浮点数值表示,64位格式是如何存储的呢?分为三个部分:第一部分:符号位(1位):表示正数还是负数(0表示正数、1表示负数),第二部分:指数位(11位),第三部分:有效位(52位)。0.1转成二进制(十进制->二进制,如果是正数:除2取余,逆序,如果是小数:乘2取整,正序):0.000110011001100110...0110,用科学计数法:1.10011001100110...0110*2e-4,此时,符号位为0,指数位为2e-4,有效位为1.10011001100110...0110,但是有效位只能存52位,所以会舍去一部分精度,最后存储的就不是0.1了

    3.2、number类型包括:整数、小数、NaN、无穷大
    console.log(typeof Infinity); //正无穷大
    console.log(typeof -Infinity); //负无穷大
    3.3 Number()可以将任意类型的值转化成数值,而parseInt()和parseFloat()只应用于字符串向数字的转换
    3.3.1 Number
    //   console.log(Number(true)); //1
    //   console.log(Number(null)); //0
    //   console.log(Number(undefined)); //NaN
    //   console.log(Number("0.2")); //0.2
    //   console.log(Number("")); //0
    //   console.log(Number("aa")); //NaN
    3.3.2 parseInt() parseInt()专门用于把字符串转换成整数。在转换字符串时,会忽略字符串前面的空格,直到找到第一个非空格字符。如果第一个字符不是数字字符或者负号,parseInt()就会返回NaN。如果是,则继续解析,直到解析完成或者遇到非数字字符
    //   console.log(parseInt(" 123.8px")); //123
    //   console.log(parseInt(" 123.8 ")); //123
    //   console.log(parseInt(" -123.8px")); //-123
    //   console.log(parseInt("a123.8px")); //NaN
    //   console.log(parseInt("0 123.8px")); //0
    3.3.3 parseFloat()专门用于字符串转换浮点数。同样地,解析时会忽略字符串前面的空格,直到找到第一个非空格字符,然后一直解析到字符串末尾或一个无效的浮点数字字符为止
    //   console.log(parseFloat(" 0123.px")); //123
    //   console.log(parseFloat(" 123.px")); //123
    //   console.log(parseFloat(" 123.1px")); //123.1
    //   console.log(parseFloat(" 123.1.2px ")); //123.1
    //   console.log(parseFloat(" -123.0px")); //-123
    //   console.log(parseFloat(".123.1px")); //0.123
    //   console.log(parseFloat("0 123px")); //0
    3.3.4、Number里的方法
    //   console.log(0.0000112311232.toExponential()); //返回一个数字的指数形式的字符串 , 1.12311232e-5
    //   console.log(13.375.toFixed(2));//13.38 四舍五入
    //   console.log(Number.isInteger(123));//true 判断为整数
    console.log(isNaN('aaa')) //false
    console.log(Number.isNaN('aaa1'))
  • 相关阅读:
    Cocos2d-x游戏移植到Android平台
    Alice and Bob
    Hamming Codes
    Fire逃生
    Java中面向对象的理解
    常见的几个算法
    数组的介绍
    Java 中的数据类型
    Java 初相识
    JavaScript 数据类型 (续)
  • 原文地址:https://www.cnblogs.com/songjiali/p/14178138.html
Copyright © 2020-2023  润新知