zoukankan      html  css  js  c++  java
  • 第三章 javaScript数据类型

          在总结javaScript的数据类型之前,我们需要知道一些javaScript的常识,当然这跟数据类型的理解并没有什么鸟关系,我只是不想为了这么点东西而单开一篇,当然如果以后有机会的话也可以详细学习和总结,至少目前知道也够用就好。

    javaScript的一些特点和约定:

    1、javaScript区分大小写。

    2、变量、函数、属性、参数的名字第一个字符必须是一个字母、下划线(_)或者美元符号($)。其他字符可以是字母、下划线、数字或美元符号

    3、javaScript标识符采用驼峰大小写格式,也就是第一个字母小写,剩下的每个单词的首字母大写,如:javaScript。

    4、在代码顶部添加"use strict"启用严格模式,如果是在某函数内部的第一条添加,则只本函数启用严格模式。

    5、语句用;结束,如果不添加;,解释器会自动判断并添加;

    6、{}表示“块”。

    7、关键字和保留字不能用于标识符,具体有哪些google吧。

    8、var进行变量定义,在函数内部不加var进行变量定义,则变量为全局变量


          下面进入正题,说说javaScript的数据类型。

          数据类型是每个编程语言都具有的知识,而javaScript不同于其他的语言就是,初学者会感觉它的数据类型简单又复杂。简单是因为它的基本数据类型简单,比如数值型就一种,不区分整数、浮点数、而且数据类型的转换很自如,js会根据情况自动进行转换,甚至基本数据类型还有方法可用,像一个对象一样,好神奇。。。。。。但是~~~~~~~~~~,复杂也是复杂在这种松散的数据类型变换太随意,感觉不好掌控,当然这一点也局部体现了javaScript的灵活性。

          初次接触这门语言的时候,会在数据类型、函数、对象以及面向对象上感觉混乱,而我们之所以有这种感觉,是因为我们没有理解其中的真相,等我们理解了其中的真相,就犹如拨云见日,再也不会迷惑了,而灵活的掌握此项知识,对程序的掌控性会比别的语言更加灵活。我也是前后摸索了很久,现在总结在这:

    • javaScript的数据类型

          javaScript的数据类型如果让我来分类的话,我认为刚开始理解的时候,可以分为三类:基本数据类型、引用数据类型、原始封装类型。后期就变成了两种:基本数据类型和引用数据类型。他们之间的区别和联系是什么,慢慢看。

          基本数据类型只有五种:number、string、boolean、undefined、null。

          引用数据类型有一种:Object。

          原始封装类型:Number、String、Boolean。

    • 基本数据类型:

          基本数据类型的理解我们很简单,就是在js的世界里有5种基本数据类型,什么叫基本数据类型,就是组成javaScript元素的最基本的细胞,它不会再包含其他的东西了,最基本的了,它不会有任何的属性和方法(但是实际上确实可以调用到方法,但是这不是基本数据类型的错,是javaScript为了方便,进行了暗地的操作!)。

    1. undefined:只有一个值,就是undefined,表示未经初始化的变量。
    2. null:只有一个值,就是null,表示一个空指针对象。
    3. boolean:有两个值,分别是true、false。
    4. number:包含整数和浮点数。
    5. string:字符串类型。由0或多个16位Unicode字符组成的字符序列。

    如何判断一个变量是哪种基本数据类型?javaScript为我们提供了typeof操作符(注意不是函数,是一个操作符)。它会返回一个变量的基本数据类型。

     

    var a = 123;
    var b = "123";
    var c = true;
    var d = 123.4;
    var e = null;
    var f = undefined;
    console.log( typeof a );  // number类型
    console.log( typeof b );  // string类型
    console.log( typeof c );  // boolean类型
    console.log( typeof d );  // number类型
    console.log( typeof e );  // object类型(引用类型),注意此处,按理说应该返回null啊,为什么是object,object又是什么,这里你可以理解成这是一个js的bug。。。object后续介绍
    console.log( typeof f );  // undefined类型
    • 引用数据类型:

    object类型

    |

    |——内建类型:Object、Array、Date、Error、Function、RegExp。

    |——原始封装类型:Number、String、Boolean。

          上边的标题缩进规则实际上表明了引用类型的结构(注意上边的object和Object表示的意义是不一样的,object是一种定义而Object是实实在在的一个东西),实际上引用数据类型只有一种,那就是object类型。

          当然具体应用起来,你是找不到object(注意o是小写的)的,只能找到javaScript内建的引用类型或者原始封装类型。就像object只是一种定义,除了typeof的时候可以看到这几个字母,其他的时候看不到这个字母。举个例子,比如“人”这个数据类型,只是一种定义,你实际上找不到人,只能找到男人和女人。但是typeof的时候会告诉你,他是人。

          内建数据类型和原始封装类型是object的实际表现方式,也就是javaScript对象类型。可以通过new操作符来实例化对象。

    var a = new Function("asdf","return ;");
    console.log(  a );  // function(asdf) {return ;}
    var b = new Number(123); 
    console.log( b ); 
    var c = new Object();
    console.log( c );
    
    console.log( typeof a );  // function
    console.log( typeof b );  // object
    console.log( typeof c );  // object

          javaScript提供了这么多内建数据类型是为了更加的方便(实际上所谓的内建类型和原始封装类型,是一组构造函数,我们可以通过new来实例化对象)。

          比如数组类型是必要的,Date类型,都有特定的用途,很好理解,但是原始封装类型是干什么用的呢?我们上边说基本数据类型也有方法,就是通过它来实现的。javaScript为了使表现一致,"123".length的方式是允许的,但是实际上这样的操作javaScript隐藏了内部的细节,内部细节就是通过原始封装类型来进行了参与,具体看一个例子。

    var a = "123";
    var b = a.length; 
    console.log( b ); // 3
    
    // 分解为如下:
    
    var a = "123";
    var temp = new String( "123" );
    var b = temp.length
    temp = null;
    console.log( b );

        由此可以看出,基本数据类型是没有方法的,它之所以能使用方法是javaScript自动的通过原始封装类型进行了模拟,并且此过程不在外部表现出来。

    总结:

    • javascript有两种数据类型:基本数据类型和引用数据类型。
    • 引用数据类型又称为object类型,或者对象类型。
    • javaScript默认有Object、Array、Date、Function、RegExp、Error、Number、String、Boolean这几个(内部)构造函数,通过这几个构造函数创建出来的对象也是object对象,它的类型是object类型。
  • 相关阅读:
    python3----列表
    python3----字符串
    PTA 深入虎穴 (正解)和树的同构
    第5章 树与二叉树学习小结
    第4章学习小结_串(BF&KMP算法)、数组(三元组)
    《数据结构》第3章-栈与队列的学习总结
    《数据结构》第2章线性表的学习总结
    Web安全基础——小白自学
    git撤销commit
    收藏一些比较好的前端博客
  • 原文地址:https://www.cnblogs.com/jingubang/p/4618996.html
Copyright © 2011-2022 走看看