zoukankan      html  css  js  c++  java
  • 【《你不知道的JS(中卷①)》】二、值

    二、值:

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

    一)、数组:

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

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

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

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

    类数组:

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

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

    二)、字符串:

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

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

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

    三)、数字:

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

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

    特殊数值:

    1、不是值的值:

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

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

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

    2、特殊的数字

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

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

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

    3、特殊等式:

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

    四)、值和引用:

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

    • 简单值(即标量基本类型值)总是通过值复制的方式来赋值/传递。
    • 复合值(对象、函数)总是通过引用复制的方式来赋值/传递。
  • 相关阅读:
    系统学习DOM事件机制
    混合编程:域、桥与型变
    分层语言的混合编程
    投资第一定律
    元编程(运行时)模型
    泛型的第一性:同构、集合、抽象
    元编程沉思录
    思想是什么?经过严密的逻辑论证的观点的体系。
    编程语言概念的层次性与解释系统
    元编程沉思录(草稿)
  • 原文地址:https://www.cnblogs.com/enmac/p/13200024.html
Copyright © 2011-2022 走看看