【JS】Array.of() 创建数组

JavaScript017

【JS】Array.of() 创建数组,第1张

Array.of() 的作用是 创建数组

创建数组本来已经有 字面量 Array构造函数 等方法,但由于 Array构造函数 创建数组时有一些怪异的行为,所以 ES6 添加了 Array.of() 来弥补 Array构造函数 的不足。

以上是 Array构造函数 的用法,也是 Array构造函数 的怪异行为。

new Array() 当只传入一个参数时,不能传入负数,也不能传入浮点数。

在使用 new Array 时,一不小心就会创建出稀疏数组。这个动作会产生一些诡异的“空槽”行为,这也是JS数组广为人所诟病的一点。

Array.of() 取代了 Array() 成为数组的推荐函数形式构造器,因为 Array.of() 并没有这个特殊的单一数值型参数值的问题。

Array.of() 总是返回参数值组成的数组。如果没有参数就返回一个空数组。

所以说,Array.of() 的行为比 Array() 更统一。

如果有一个回调函数需要传入的参数封装为数组,而且不能保证传入的值一定不是0或正整数,Array.of()可以完美解决这个问题。

如果需要构建 Array 的子类,并且想要在子类实例中创建和初始化元素。

这里用了reduce方法,这个方法是Array的,这里用 this.reduce 是因为 Calculator 继承了 Array。

Array.reduce的使用方法可以看下面的链接

【JS】遍历数组的常用方法(举例版)

        js是一门弱语言,它在声明变量时无需确定变量的类型,js在运行时会自动判断。那么如何判断一个变量的类型呢,js提供了typeof运算符,用来检测一个变量的类型。

    typeof是一个运算符,有2种使用方式:typeof(表达式)和typeof 变量名,第一种是对表达式做运算,第二种是对变量做运算。

    typeof运算符的返回类型为字符串,值包括如下几种:

        1. 'undefined'              --未定义的变量或值

        2. 'boolean'                 --布尔类型的变量或值

        3. 'string'                     --字符串类型的变量或值

        4. 'number'                  --数字类型的变量或值

        5. 'object'                    --对象类型的变量或值,或者null(这个是js历史遗留问题,将null作为object类型处理)

        6. 'function'                 --函数类型的变量或值

    console.log(typeof a)    //'undefined'

    console.log(typeof(true))  //'boolean'

    console.log(typeof '123')  //'string'

    console.log(typeof 123)   //'number'

    console.log(typeof NaN)   //'number'

    console.log(typeof null)  //'object'    

    var obj = new String()

    console.log(typeof(obj))    //'object'

    var  fn = function(){}

    console.log(typeof(fn))  //'function'

    console.log(typeof(class c{}))  //'function'

        总结:typeof运算符用于判断对象的类型,但是对于一些创建的对象,它们都会返回'object',有时我们需要判断该实例是否为某个对象的实例,那么这个时候需要用到instanceof运算符,后续记录instanceof运算符的相关用法。