zoukankan      html  css  js  c++  java
  • JavaScript数据类型

    js的数据类型主要分为两大类:原始(基本)数据类型,引用(复杂)数据类型

      原始数据类型:number,string,boolean,null,undefined

        1. number

        Number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一位数字)两种值,值得注意的是NaN(not a number)也是number类型的,NaN 与其他数值进行比较的结果总是不相等的,包括它自身在内。

        检测一个数是否是number类型,可以用 isNaN(),也可以直接用typeof()检测。

        isNaN()返回的是一个Boolean值,也就是true和false,如果检测的内容是数字,返回的值为false,否则返回true

    var num = 123;
    var num1 = "mercy";
    console.log(isNaN(num));        //false
    console.log(isNaN(num1));       //true

        typeof()直接返回的是数据的类型

    var num = 123;
    var num1 = "mercy";
    console.log(typeof(num));        //number
    console.log(typeof(num1));       //string

        2. string

        字符串类型,是唯一没有固定大小的原始类型。可以用字符串存储 0 或更多的字符,字符串中每个字符都有特定的位置,首字符从位置 0 开始,第二个字符在位置 1,依此类推。这意

    味着字符串中的最后一个字符的位置一定是字符串的长度减1。字符串一般使用双引号("")包裹起来。

        检测的话,只能用typeof()来检测

    var str = "hello world";
    console.log(typeof(str));        //string

        3. boolean

        boolean的返回值只有两种,就true或false。因此,boolean的检测十分简单,也是用typeof()检测,就不多说了。

        4. null

        null类型被看做空对象指针,前文说到null类型也是空的对象引用。

        typeof()检测的返回值为object。

        5. undefined

        只有一个值,即undefined值。使用var声明了变量,但未给变量初始化值,那么这个变量的值就是undefined。

        typeof()检测的返回值为undefined。

      引用数据类型:object

         js中对象是一组属性与方法的集合。这里就要说到引用类型了,引用类型是一种数据结构,用于将数据和功能组织在一起。引用类型有时候也被称为对象定义,因为它们描述的是一类

        对象所具有的属性和方法。

        typeof()检测的返回值为object。

    从上面就可以看出,有两种数据类型的检测,返回的都是object,其实还要一种数据类型array,用typeof()检测,它的返回类型也是object,那么问题来了,如何区分这三种数据类型呢?

    判断类型的方法很多,这里我就只说一种:toString()方法。

      toString()方法,这个是利用对象的原型来判断。在js中,有万物皆对象的说法,因此我们就可以利用Object.prototype.toString.call(检测的数据)来检测。

    var num = 100;
    var str = "hello world";
    var arr = [1,2,3,4,5];
    var obj = {
        name : "张三",
        age : 30,
        sex : "男"
    }
    var nul = null;
    var bool = true;
    console.log(Object.prototype.toString.call(num));     //[object Number]
    console.log(Object.prototype.toString.call(str));     //[object String]
    console.log(Object.prototype.toString.call(arr));     //[object Array]
    console.log(Object.prototype.toString.call(obj));     //[object Object]
    console.log(Object.prototype.toString.call(nul));     //[object Null]
    console.log(Object.prototype.toString.call(bool));    //[object Boolean]
  • 相关阅读:
    Maven实战读书笔记(三):Maven依赖
    Maven实战读书笔记(四):Maven生命周期与插件
    Maven实战读书笔记(一):Maven概述
    Spring Data Redis入门示例:程序配置(五)
    Spring Data Redis入门示例:字符串操作(六)
    zabbix api使用
    elasticsearch mappings之dynamic的三种状态
    自动添加windows 2012用户,并在jump添加授权
    python 查询es数据
    python获取zabbix Triggers top100
  • 原文地址:https://www.cnblogs.com/mercy-up/p/10148489.html
Copyright © 2011-2022 走看看