美文网首页
JS基础--两大类JS数据类型(8种数据类型)

JS基础--两大类JS数据类型(8种数据类型)

作者: 舞动风华 | 来源:发表于2019-07-06 23:59 被阅读0次

    1. 6种-基本数据类型:

    ⑴ 数值类型 Number

    数值类型分为:

          1.正负整数 : 100;

          2. 浮点数 : 1.23;

          3. 科学计数法 :1.23e-2 相当于 1.23 * 10^-2;

          4. 无穷大/无穷小 :Infinity / -Infinity;

          5. 特殊的数值类型 :NaN ,注意点如下;

              ⑴ NaN 与任何 Number数据类型 做算术运算都得 NaN(包括其本身);

              ⑵ NaN 与任何数值皆不相等,包括 NaN == NaN,返回 false;

    拓展:

        获取最大值 :Number.MAX_VALUE  约等于(根据浏览器的不同)1.7976931348623157e+308;

        获取最小值 :Number.MIN_VALUE  约等于(根据浏览器的不同)        5e-324

        虽然数字是无穷的,但计算机的内存是有穷尽的,所以 JS 具有最大/最小值,若给最大值 * 10,会得到 Infinity。

    (2)字符串类型 String

    JS 中,表达字符串类型有两种方法:

        1. 使用一对单引号(英文符号),将数据包裹起来 :‘abc’;

        2.  使用一对双引号(英文符号),将数据包裹起来 :"abc";

    知识点:

      1. 一般习惯上使用单引号,且同一份代码文件,建议统一使用单引号 / 双引号作为字符串的开始;

      2.单双引号可以成对的互相嵌套: " '' " / ' "" ',不可以混合嵌套 :' " ' ",JS 在执行代码时,会把第一个遇到的单引号/双引号作为字符串的开始,于是根据该引号,寻求下一个引号作为结束,所以在单引号 / 双引号的嵌套中,第二个出现的双引号 / 单引号会被认为是字符串的一部分进行解析;

      3. 若一个字符串内,既包含单引号,又包含双引号,可以使用转义符(反斜杠:\)来解决问题,JS 代码在解析字符串时,会把转义符后面的第一个符号解析为字符串的一部分 :单引号 \'  ;双引号  \"

    ⑶ 布尔类型 Boolean

    布尔类型只有两个值,常用于条件判断语句:

        1. true  代表 真;

        2. false  代表 假;

    ⑷ 特殊基本数据类型 Null

    Null 只有唯一的一个值为 null;

        1. 代表空,用typeof 判断数据类型的时候,会返回 object

        2. 一般常见于DOM操作,获取不到数据的时候,会返回 null,例如:页面若不存在div标签,却使用 document.querySelector('div') 去获取div元素节点的时候,返回 null

        3. 一般在声明变量时,若变量值不确定,即可能由代码在后面动态赋值,而当前需要提前声明而导致无法赋值时,建议使用 null作为默认值:var xx = null;    而不是:var xx;

    ⑸ 特殊基本数据类型 Undefined

    Undefined 只有唯一的一个值为 undefined;

      1. 代表未定义,常见于 :

        (1)声明变量,却未赋值 :var xx;

        (2) 获取数组中,超出数组下标的值;

        (3)获取对象中未定义的属性 或方法;

    简单理解 null 与 undefined 的区别:  null是 JS知道自己要获取什么值,但是找不到符合条件的值;undefined 是 JS根本不知道只是一个什么东西;

    ⑹ 【ES6新增属性】Symbol

    最全Javascript数据类型解析 - Alvabill的满满干货 - CSDN博客

    2. 2种复杂数据类型

    ⑴ 数组 Array

    数组的三要素 :元素、下标(下标从0开始)、长度(length);

        1. 数组多用于存放一组具有 排列顺序的数据,这个数据既可以是 基本数据类型,也可以是复杂数据类型;

        2. 数组使用 typeof 检验数据类型是 会得到object,故建议使用其他检验数据类型方法检验(待补充新篇章,数据类型的检验方法);

        3. 数组的声明:

          (1)var arr = new Array();

                  var arr = new Array(1,2,3);  创建一个数据内容为1,2,3的数组;

                  var arr = new Array(3);    创建一个长度为3 的数组;

          (2)var arr = Array();

          (3)var arr = []; 最常用

    var arr = [1,2,3,];  创建内容为1,2,3的数组,创建数组时,若最后是以一个数据+逗号的形式结尾,逗号不起作用,一般忽略不写;

    var arr = [3];  创建内容为3 的数组;

      4. 数组的遍历 :

    ⑵ 对象 Object 

    对象分为  Object(对象) 和 Function(函数) 两种 :

    Object 对象:

        1.  Object 是一种以键值对形式存储数据的数据类型,这个数据既可以是 基本数据类型,也可以是复杂数据类型;

        2. Object 的声明方法:

          (1)var obj = new Object();

          (2)var obj = {};    最常用,推荐

        3. 对象的声明并赋值:

        4. 对象的 获取、修改与赋值:

        5. 对象的遍历 for-in :

    Function 函数:

    函数中存放的是一段代码

        1. 函数的声明:

          (1)function fun(形参) { 代码 }        函数的形参可以有默认值: 形参 = 默认值

          (2)var fun = function(形参) { 代码 }    使用变量接收 匿名函数

          (3)(function() { 代码 })()      一般函数只有被调用才会执行,自执行函数不需要调用就会制动执行。

        2. 函数内的两个特殊属性:

          (1)arguments    函数内默认用来保存所有实参的一个数组;

          (2)this              对象 与 构造函数 常用,这个属性默认指待window本身,但这不是固定的,简单记忆就是,谁点出这个方法(函数),this就指向谁。      默认的函数调用比如: obj()  本质是 window.obj(),window是一个JS中最顶级的对象。  如果声明一个对象,对象中有一个方法,方法中的this 就代表当前这个对象。

    3. 基本数据类型 和 复杂数据类型 的区别

    存储方式不同

    浏览器会在在计算机的内存中,分出多个空间用于缓存数据,其中三个为 : 字符串常量区、栈、堆。

      (1)字符串常量区用于储存唯一的(不重复)字符串,当 JS代码需要声明变量存储字符串时,会优先在字符串常量区遍历,看是否存在这个字符串,如存在,直接拷贝一份,并将其跟变量名一起储存于栈中,若不存在,则先生成一个在字符串常量区,再执行拷贝操作。                    这一知识点涉及底层仅做了解,它关系到的是字符串的恒定性,与 为什么使用DOM对象.innerHTML 的性能 比不上 document.createElement('标签名");    等......

      (2)我们创建的基本数据类型,数据会和变量名一起储存在 栈中;

      (3)我们创建的复杂数据类型,数据会被储存在堆中,而栈中储存的的是变量名和数据在堆中的地址。    之所以这样处理是因为,栈处理数据的速度比堆快,但存储空间比堆小。

    影响:不同的储存方式带来的,是数据处理的方式不同:


    相关文章

      网友评论

          本文标题:JS基础--两大类JS数据类型(8种数据类型)

          本文链接:https://www.haomeiwen.com/subject/llsmhctx.html