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

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种数据类型))