2020-01-06 JS数据结构

五种基本数据类型:Undefined, Null, Boolean, String, Number
一种复杂数据类型: Object (一组无序名值对)

Undefined:

未经声明和未初始化的变量,typeof 操作返回值都是undefined。

Null:

只有一个值的数据类型,这个特殊的值是null。
从逻辑角度来看,null表示一个空对象指针。 这也正是typeof检测null时会返回object的原因。
实际上,undefined值是派生自null值的。所以ecma规定对他们做相等性测试要返回true。

相等性测试.png

虽然二者有上述关系,但是他们的使用是完全不同的。
我们没有必要去显示声明一个变量为undefined,但是如果我们意在保存对象的变量还没有真正的保存对象,就应该明确的让该变量保存null值。

Boolean:

Boolean类型的字面值只有两个true/false, 但ECMAScript中所有类型的值都有与这两个boolean值等价的值。要将一个值转化为其对应的Boolean值,调用转型函数Boolean()。
各种类型转换规则:

数据类型 准换为true的值 准换为false的值
Boolean true false
String 任何非空字符串 " "(空字符串)
Number 任何非0数字(包括无穷大) 0和NaN
Object 任何对象 null
Undefined n/a(not applicable) undefined
Number:

八进制:前导数为0
十六进制:前导数为0x
进行算数计算时,八进制和十六进制的所有数最终都会被转化为十进制。

  1. 浮点数:ECMAScript会不失时机的将浮点数转化为整数。
    **不要测试某个特定的浮点数值。浮点数最高精度是17位小数,但在进行算数计算时其精确度远远不如整数。

  2. 数值范围: Number.MIN_VALUE, Number.MAX_VALUE
    若一个数超出范围则会返回-Infinity / Infinity
    可使用isFinite()来检测一个数值是否有穷

  3. NaN:用来表示一个本来要返回数值的操作数未返回数值的情况。(这样就避免了抛出错误)
    在ECMAScript中,任何数除以0会返回NaN,不会像其他语言那样直接抛出异常影响其他代码段的执行。
    NaN的特点:任何涉及NaN的操作都会返回NaN; NaN与任何值都不相等,包括NaN本身。


    image.png

    所以,产生了isNaN()这个函数,帮我们确定这个数是否不是数值。

  4. 数值转换
    Number(), parseInt(), parseFloat() (优先选后两者,具体见红宝书3.4.5)

String: 单双引号表示的字符串都有效。
  1. 字符字面量:转义序列。(6个字符长的转义序列表示一个字符,空格也表示一个字符)
  2. 特点:字符串不可变。不用的后台销毁。
  3. 转换为字符串:
    要把一个值转换为字符串有两种方法:toString(), String()
    toString(): 不需要参数,但可设置参数为基数以指定输出格式。null 和 undefined没有这个方法。
    String(): 可将任何类型转换为字符串。原则:若值有toString()方法,则调用。没有则返回该返回的。
Object:一组数据和功能的集合。
var o = new Object();

一个重要思想:Object类型所具有的任何属性和方法也同样存在于更具体的对象中。

valueOf(): 返回对象的字符串,数值和布尔值表示。通常与toString()方法的返回值相同。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、标识符 标识符是指变量、函数、属性的名字,或函数的参数。 格式规则: 第一个字符必须是一个字母、下划线(_)或...
    风中丶凌乱阅读 1,663评论 0 0
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,272评论 0 4
  • 1、标识符 标识符是指变量、函数、属性的名字,或函数的参数。 格式规则: 第一个字符必须是一个字母、下划线(_)或...
    霜天晓阅读 717评论 0 0
  • 本章内容 语法 数据类型 流控制语句 理解函数 3.1 语法 3.1.1 区分大小写 区分大小写 3.1.2 标识...
    闷油瓶小张阅读 738评论 0 0
  • 变量 声明变量 命名变量区分大小写的语言第一个字符是字母或下划线_,数字不能作为第一个字符字符必须是字母,数字或者...
    flyingtoparis阅读 836评论 0 0