• 数据类型和typeof操作符


      虽然学习js有一段时间了,但是对js的基础语法却是有些生疏。最近在看jquery源码,决定随带总结一些基础的语法知识。今天总结一下数据类型和typeof,这在写js的时候,是不得不知道的知识。

      数据类型:

      js有5种基本的数据类型:undefined,Null,Boolean,Number,string;和一种复杂的数据类型:object,js不支持所有自定义的数据类型,所以所有变量的值都是以上类型。

      typeof:它的出现用来检测变量的数据类型,它可能的值有6种。

      undefined---如果这个值未被定义(变量未声明||只声明未被初始化||声明初始化为undefined)

      boolean,number,string,object,function.

      undefined数据类型:这种数据类型只有一个值undefined。

    //第一个例子
    var m1;//只声明了,未被初始化
    var m2=undefined;//声明初始化undefined
    alert(m1);//undefined
    alert(m2);//undefined
    alert(typeof m1);//undefined
    alert(typeof m2);//undefined
    //第一个例子显示,变量声明之后,自动赋值undefined且数据类型为undefined
    
    //第二个例子
    alert(n);//n未声明,产生错误
    alert(typeof n);//undefined
    //第二个例子显示,未被定义的变量值的数据类型为undefined

      Null数据类型:这种数据类型也只有一个值null,null它表示一个空对象指针。在定义变量的时候,如果意在存储对象,则应该像这样var n=null;可以区分null和undefined。

    var n=null;
    alert(typeof n);//object

      Boolean数据类型:这种数据类型只有两个值:true和false,区分大小写。虽然只有这两个值,但是所有类型的值都可以与这两个值进行转换(可以用Boolean()转型函数),这在if控制语句中非常有用。转换关系如下:

    数据类型 转化为true 转化为false
    Boolean true false
    undefined undefined
    object 任何对象 null
    string 任何非空字符 空字符
    number 任何非零数字 null和NaN

      Number数据类型:

      其中比较特别的是NaN(非数值,是一个比较特殊的数值),此数值表示一个本来要返回数值的操作数未返回的情况。并且它有两个比较奇怪的特点:1.任何关于NaN的操作都会返回NaN,2.NaN与任何值都不相等,包括它本身。正因为它的这些特性,ECMAscript定义了一个函数isNaN(),通过这个函数,我们就可以对任何数据类型的值进行判断,以此来确定这些值是否是数值。在判断的之前,isNaN()函数会先对能进行转换的值进行转换(Boolean数据类型的true,false可以分别转换为1,0;字符串的数值字符串可以转换为相应的数值),而判断过程中,是数值的会返回false,不是数值的会返回true。如下

    alert(isNaN("MYname"));//true
    alert(isNaN("123"))//false,字符串会先转换为数值
    alert(isNaN(true))//false,会转换为1
    alert(isNaN(NaN))//true

      string数据类型:

    var str1 = "myname",
          str2 = "";
    
    typeof str1 //string
    typeof str2 //string

      object引用类型:

    var vs1 = [],
        vs2 = Object;
    
    typeof vs1;// object
    typeof vs2;//function

    在检测引用类型的时候,情况会有点复杂,将在以后的文章中说到

      

  • 相关阅读:
    BZOJ 2456 mode
    BZOJ 1041 [HAOI2008]圆上的整点
    东北育才 第6天和第7天
    POJ 3692 Kindergarten(最大团问题)
    KM算法及其应用
    UVA 11582 Colossal Fibonacci Numbers!(循环节打表+幂取模)
    ZOJ 3960 What Kind of Friends Are You?(读题+思维)
    POJ 2349 Arctic Network(最小生成树中第s大的边)
    HDU 1576 A/B(欧几里德算法延伸)
    NYOJ 1013 除法表达式(欧几里德算法+唯一分解定理)
  • 原文地址:https://www.cnblogs.com/wang-jiang/p/3879754.html
Copyright © 2020-2023  润新知