Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

数据结构与算法之数组 #19

Open
wulala opened this issue Nov 14, 2017 · 0 comments
Open

数据结构与算法之数组 #19

wulala opened this issue Nov 14, 2017 · 0 comments

Comments

@wulala
Copy link
Owner

wulala commented Nov 14, 2017

Array.length

返回或设置(截断、扩展,扩展后自动获得undefined值)数组的元素个数。但是并不一定表示定义项目个数

var letter = ['a', 'b', 'c']
letter[25] = 'z'
console.log( Object.keys(letter) ) // ['a', 'b', 'c', 'z']
console.log( letter.length ) // 26

创建数组

  • var arr = [] // javascript: the goods parts 推荐用法

  • var arr = new Array() // 没有参数,创建实例 ,,, [], length = 0

  • var arr = new Array(5) // 一个参数,指定数组的长度 ,,, [undefined × 5], length = 5

  • var arr = new Array(5,4) // 多个参数,作为数组的初始值 ,,, [5,4], length = 2

  • var arr = Array.of(5) // 一个参数,创建单项值的数组 ,,, [5], length = 1

  • var arr = Array.of(5,4) // 多个参数,创建多项值的数组 ,,, [5,4], length = 2

  • var arr = RegExp.exec(str)

  • var arr = String.match(regexp)

  • var arr = String.split

  • var arr = Object.keys(obj)

判断数组

arr instanceof Array

instanceof运算符用来测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性

创建一个(构造)函数自动获得一个prototype属性,此属性指向函数的原型对象

// 原型对象自动获得一个 constructor 属性,此属性指向 prototype 属性所在函数的指针

当调用构造函数创建一个实例后,此实例内部将包含一个指针 proto,指向构造函数的原型对象,此连接存在于 实例与构造函数的原型对象 之间,而非实例与构造函数

Array.prototype.isPrototypeOf(arr)

isPrototypeOf() 方法用于测试一个对象是否存在于另一个对象的原型链上

Object.prototype.toString.call(arr) == "[object Array]"

没啥好说的,Object.toSring() 就是返回 [object type] (type 为对象类型), 自定义的构造函数返回 [object Object]

arr.constructor == Array

constructor 用来检测对象的类型,(系统级引用类型、自定义的构造函数)

对象是引用类型的一个实例,引用类型是一种数据结构,用来将数据和功能组织在一起,通常也成为 类 / 对象定义(描述的是一类对象所具有的属性和方法)

Array.isArray(arr)

撸js基础之数组

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant