JavaScript 系列笔记(一)数据类型

关于JS的数据类型

  简单类型有五种:Undifined, Null, Boolean, Number, String

  复杂类型有一种:Object

  通过typeof 操作符来获取数据类型,此操作符返回字符串

    undifined

    boolean

    string

    number

    object

    function

类型Undifined

  只有一个值,就是undifined

  typeof 未初始化的变量,返回undifined

  typeof 未声明的变量,返回undifined

Null类型

  只有一个值,就是null  

  typeof null 返回object

Boolean类型

  只有两个字面值:true, false

  所有类型的值都有与这两个值等价的值

  

Number类型

  表示浮点数的时候最高精度为17位小数,但是精度不如整数

  var a = 0.1;

  var b = 0.2;

  则:  a + b = 0.30000000000000004

  所以,使用浮点数需要注意精度问题。可以使用如下的方法进行:

  

        function accAdd(arg1, arg2) {

        var r1, r2, m, c;

        try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }

        try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }

        c = Math.abs(r1 - r2);
        m = Math.pow(10, Math.max(r1, r2))
        if (c > 0) {
            var cm = Math.pow(10, c);
            if (r1 > r2) {
                arg1 = Number(arg1.toString().replace(".", ""));
                arg2 = Number(arg2.toString().replace(".", "")) * cm;
            }
            else {
                arg1 = Number(arg1.toString().replace(".", "")) * cm;
                arg2 = Number(arg2.toString().replace(".", ""));
            }
        }
        else {
            arg1 = Number(arg1.toString().replace(".", ""));
            arg2 = Number(arg2.toString().replace(".", ""));
        }
        return (arg1 + arg2) / m

    }
View Code

  数值的取值范围:

    Number.MIN_VALUE

    Number.MAX_VALUE

    超出取值范围的数值为:Infinity,可以通过isFinite()函数来判断

  NaN  表示非数值,本身是一个数值对象

    最大的特点是不等于任何值,即使是NaN,isNaN()函数可以判断是否为NaN

  数值转换

    Number()函数的转换规则

        

    parseInt()

      会判断是否符合数值模式,会忽略开头的空格,直到遇到第一个非空字符,解析到第一个非数值为止

      parseInt(参数1,16)  表示使用16进制转换,参数含义为进制

    parseFloat()

      使用方法与上面类似

String类型

Object类型

  对象可以通过new来创建。在JS中Object类型是所有它的实例的基础。Object中的方法和属性都存在于更具体的对象中

    constructor  构造函数,保存创建当前对象的函数

    hasOwnProperty(propertyName)  检查给定的属性是否存在于当前对象中

    isPrototypeOf(object)  检查传入的对象是否是当前对象的原型

    propertyIsEnumerable(propertyName)  检查给定的属性是否能使用for-in语句来枚举

    toLocaleString()    返回对象的字符串表示

    toString()       返回对象的字符串表示

    valueOf()       返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同

 

原文地址:https://www.cnblogs.com/hutou/p/5030724.html