JS里的数据类型

一、JS的相关历史简要

       1991年   李爵士创建了万维网

       1992年   CSS诞生

       1993年   W3C诞生

       1994年底-1995年   Netscape创建了名为Navigator浏览器,并且与Sun公司合作,使其浏览器支持嵌入Java小程序,但并不使用Java作为脚本语言,而是聘请了程序员Brendan Eich写出一种类似Java的语言(只用了10天)--JavaScript

       后来,unicode发布。这说明了重要的一点:JavaScript并不完全支持UTF-8

       1996年   微软公司仿照JavaScript开发一种新语言名为JScript将其内置于IE3浏览器。Netscape公司面临丧失浏览器脚本语言的主导权,于是Netscape将JavaScript 提交给国际标准化组织 ECMA(European Computer Manufacturers Association)希望其能与微软抗衡,在1998年开源了浏览器,导致Mozilla项目的诞生。

      1997年   ECMA组织发布了第一版标准名为ECMAScript 1.0。一方面是JavaScript已经被Netscape公司注册使用,另一方面想体现这一标准是由ECMA制定。

      1999年   IE 5部署了 XMLHttpRequest 接口,允许 JavaScript 发出 HTTP 请求,为后来大行其道的 Ajax 应用创造了条件。同年12月,ECMAScript 3.0发布,成为 JavaScript 的通行标准。此时JavaScript的缺点:没有模块化、内置代码少。

      2001年-2003年   微软、Mozilla项目、苹果分别推出浏览器IE6、Firefox、Safari

      2004年   Google 公司发布了 Gmail,促成了互联网应用程序。JavaScript开始被认为是一种编程语言。

      2006年   IE7发布

      2009年   ECMAScript 5.0发布。但功能改善太少,于是Rails社区发布了 CoffeeScript 的最初版本。CoffeeScript 可以被转换为 JavaScript 运行,但是语法比 JavaScript 简洁。这开启了其他语言转为 JavaScript 的风潮。

     2011年   微软发布IE8浏览器

     2015年   ECMAScript 6.0发布。JavaScript开始成为现代编程语言。后面开始JavaScript每年一更。

     值得注意的是,以上可以看出IE8不支持ECMAScript 6.0

二、JavaScript里的数据类型

  JavaScript有以下七种数据类型:数值number、字符串string、布尔值boolean、符号symbol(ECMAScript 6引入)、null、undefined、对象object。前六种称为基本类型,最后一种称为复杂类型。下面简单介绍一下:

    1.number

      十进制:1、.1(即0.1)、1.23e2(即1.23*10^2)

      二进制:0b11

      八进制:011(由0开头,或者0o开头。通常来说,有前导0的数值会被视为八进制,但是如果前导0后面有数字8和9,则该数值被视为十进制,所以八进制容易出bug)

      十六进制:0x11

     2.string

例子:’你好‘、''或者""、' '(注意中间有空格,如图一)、'\''(注意中间的‘是内容,\是转义符。若不加\浏览器会报错,如图二)、'\n'(表示空格)、'\\'(表示\)

图一


图二

     3.boolean

       与&&(参考图三)


图三

        或||(参考图四)


图四

    4.symbol(ES6新引入)

    5.null(表示空对象)

    6.undefined(表示非空对象)

    7.object

        由例子 (图五)可以看出以下几点:

        (1)object由各种基本类型组成,并且object里可以有object;

        (2)key-value之间可以用逗号隔开,但只是ECMAScript 5之后才支持,由历史可以看出IE7及其以下版本不支持;

图五

          另外需要注意的地方:

        (1)key可以是空字符串(如图六)

图六

         (2)key必须符合标识符规则:

                第一个字符可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_);

                第二个字符及后面的字符除了 Unicode 字母、美元符号和下划线,还可以用数字0-9;

                中文是合法的标识符;

                不符合标识符规则的则需要用引号引起来

          (3)读取的方法有两种,用图五的例子:方法一:person.name;方法二:person['name'](这一种方法要注意的是key必须要用''引起来,因为如果这个key在别处有声明则会导致浏览器误解)

          (4)删除key的方法:

                    delete person['name'](如图七)


图七

                注意:要区别于写:person.name = undefined。该语句只会把name的值清空,但不会删除了这个key,如图八)

图八

             (5)遍历key,拿图八的例子:


              (6)遍历value:

三、看变量的类型(typeof)

    记住以下两点:

    1.null的typeof返回object,其余类型返回其对应的类型值


    2.function的typeof返回function,但function其实属于object,七种数据类型并无function


你可能感兴趣的:(JS里的数据类型)