JS-数组与伪数组】的更多相关文章

一, 伪数组 1. 具有length属性 2. 按索引方式存储数据 3. 不具有数组的方法, 比如push(),pop()等 二, 生成伪数组的方法 在js中生成伪数组的方法比较多 1. function的arguments对象 2. document.getElementsByTagName和document.childNodes,返回NodeList对象的都是伪数组 3. 上传文件时选择的file对象也是伪数组 4. 自定义的某些对象 三, 将伪数组转为真正的数组 1. 使用Array.pr…
数组和伪数组  伪数组和数组的区别 真数组的长度是可变的 伪数组的长度不可变 function f1() { var sum = 0; for (var i = 0; i < arguments.length; i++) { sum += arguments[i]; } console.log(sum); //100 } //arguments得到的是实参的个数及实参的每个值 f1(10, 20, 30, 40); 真数组可以使用数组中的方法 伪数组不可以使用数组中的方法 var arr = […
在JavaScript中,除了5种原始数据类型之外,其他所有的都是对象,包括函数(Function). 基本数据类型:String,boolean,Number,Undefined, Null 引用数据类型:Object(Array,Date,RegExp,Function) 在这个前提下,咱们再来讨论JavaScript的对象. 1.创建对象 var obj = {}; //种方式创建对象,被称之为对象直接量(Object Literal) var obj = new Object(); //…
伪数组和数组 记住一句话: 伪数组是一个Object,数组是Array. 对象和数组之间的关系 JavaScript的内置函数继承与 Object.prototype. 可以认为new Array()和[]创建出来的数组对象, 都拥有Object.prototype属性值. var obj = {}; //拥有Object.prototype的属性值 var arr = []; //由于Array.prototype的属性继承自Object.prototype, 那么它就是拥有两个属性 // 即…
null和undefined的区别 undefined: 字面意思是未定义的值,语义是希望表示一个变量最原始的状态,而非人为操作的结果.这种原始状态会在以下四个场景中出现: 声明了一个变量但没有赋值 访问对象上不存在的属性 函数定义了形参,但是没有传递实参 使用void对表达式求值 null: 字面意思是空值,语义是希望表示一个对象被人为的重置为空对象,而非一个变量最原始的状态.在内存中的表示就是栈中的变量没有指向堆中的内存对象. null有属于自己的数据类型NULL,而不是Object类型.…
一.数组与伪数组的区别例子: 从原型链上解析: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> window.onload = function{ // 伪数组 --> __proto__:HTMLCollection var btns =…
数组与伪数组 把符合以下条件的对象称为伪数组: 具有length属性 按索引方式存储数据 不具有数组的push,pop等方法 伪数组(类数组):无法直接调用数组方法或期望length属性有什么特殊的行为,不具有数组的push,pop等方法,但仍可以用数组遍历方法来遍历它们.典型的是函数的argument参数,还有像调用document.getElementsByTagName, document.childNodes之类的,它们返回的NodeList对象都属于伪数组. 可以使用以下方法将伪数组转…
什么是伪数组 能通过Array.prototype.slice转换为真正的数组的带有length属性的对象. 这种对象有很多,比较特别的是arguments对象,还有像调用getElementsByTagName,document.childNodes之类的,它们都返回NodeList对象都属于伪数组. 我们可以通过Array.prototype.slice.call(fakeArray)将伪数组转变为真正的Array对象. 在 JavaScript 中, 函数中的隐藏变量 arguments…
关于js伪数组 具有length属性: 按索引方式存储数据: 不具有数组的push().pop()等方法: 你可能知道怎么把伪数组转换为数组,但是你知道这里边的原理吗? 假如页面有一组li元素 <ul> <li>1111</li> <li>1111</li> <li>1111</li> </ul> 获取集合,控制台打印 这就是一个伪数组,长得很像数组,但是没有数组splice,concat,join,pop等方…
在js中,数组是特殊的对象,凡是对象有的性质,数组都有,数组表示有序数据的集合,而对象表示无序数据的集合. 那伪数组是什么呢,当然它也是对象,伪数组一般具有以下特点: 按索引方式存储数据: 具有length属性: 没有数组的push.shift.pop等方法; function的arguments对象,还有getElementsByTagName.ele.childNodes等返回的NodeList对象,或者自定义的某些对象,这些都可以是伪数组. 我们可以通过以下几种方式将伪数组转换为标准数组:…