【《你不知道的JS(中卷①)》】二、值

二、值:

​ 本章介绍JS中的几个内置值类型。

一)、数组:

  • 不同于 强类型语言,JS中的数组可以容纳任何类型的值。

  • 对数组声明后即可向其中加入值,不需要预先设定大小。

  • 数组通过数字进行索引,但是它们也是对象,因此可以包含字符串键值对

    • 如果字符串键可以被强制类型转换为十进制数字的话,就会被当作数字索引来处理
    • 数组的数字索引进行过优化,因此还是应该使用对象存储键值对。

类数组:

​ 类数组是一些类似数组的(可以通过数字索引)值,例如set、jQuery查询操作会返回DOM元素列表。

  • 工具函数slice(...):Array.prototype.slice(...)
  • ES6:Array.from(...)

二)、字符串:

​ 字符串也是一种类数组(数字索引),有length属性以及indexOf(..)和concat(..)方法。

​ 字符串推荐的索引方式是 charAt(..)函数

  • 字符串是不可变的,而数组是可变的
  • 字符串不可变是指 字符串的成员函数不会改变其原始值,而是 创建并返回一个新的字符串。而数组的成员函数都是在 其原始值上进行操作
  • 字符串的成员函数有时可以“借用”数组的成员函数,只需要字符串和数组的互相转换就可以实现。
    • \(字符串 \to 数组:.split("")\)
    • \(数组\to字符串:.join("")\)

三)、数字:

​ JS中只有一种数值类型:number(包括“整数”和带小数的十进制数)。

  • JS中实际上没有真正的整数,JS的number使用的是“双精度”格式的浮点数。

特殊数值:

1、不是值的值:

  • null:空值,曾赋过值,但是目前没有值
  • undefined:没有值,指从未赋值

null是一个 特殊关键字,不是标识符,不能将其当作变量来使用和赋值

undefined是一个标识符,可以被当作变量来使用和赋值

2、特殊的数字

  • NaN:”不是一个数字“,可以被理解为无效数值。

  • isNaN(..):工具函数,但并不是特别精确,所有不是数字的值都会被判错。

    ES6中提供了 Number.isNaN(..)提供了更精确的值。

3、特殊等式:

ES6加入了新的工具方法 Object.is(..)来判断两个值是否绝对相等。

四)、值和引用:

​ JS中变量不可能成为指向另一个变量的引用。

  • 简单值(即标量基本类型值)总是通过值复制的方式来赋值/传递。
  • 复合值(对象、函数)总是通过引用复制的方式来赋值/传递。

猜你喜欢

转载自www.cnblogs.com/enmac/p/13200024.html