js将类数组转成数组
2016-04-06 15:59
435 查看
(1)方法1
直接循环arguments对象,赋值到新的数组中
var args = [];
for (var i = 0, length = arguments.length; i < length; i++) {
args.push(arguments[i]);
}
(2)方法2:
Array.prototype.slice.call(arguments); 或者:
[].slice.call(arguments);
注意:
NodeList(比如:document.getElementsByTagName("div"))在IE中就不能使用方法二将其转化为数组,因为在JavaScript中,一个Dom NodeList并非一个JavaScript对象,在IE中再使用var args = Array.prototype.slice.call(nodes, 0);就会抛错,这时就需要用最原始的办法解决(方法1或者方法3【容错】)
(2)方法3(容错)
function nodeListToArray(nodes) {
var arr;
try {
// 非IE支持
arr = [].slice.call(nodes);
return arr;
} catch (err) { //支持IE
arr = [];
for (var i = 0, length = nodes.length; i < length; i++) {
arr.push(nodes[i]);
}
return arr;
} }
总结:
(1)NodeList不是数组
验证NodeList是不是数组,最直接的方法也许是试一下Array专有的push和pop方法。
(2)JS的Object类的属性和方法
属性:
constructor:对创建对象的函数的引用(指针)。对于Object类,该指针指向原始的object()函数。
prototype:对该对象的对象原型的引用。对于所有的类,它默认返回Object对象的一个实例。
方法:
hasOwnProperty(property):判断对象是否有某个特定的属性。必须用字符串指定该属性(例如,o.hasOwnProperty(”name”))。
isPrototypeOf(object):判断该对象是否为另一个对象的原型。
propertyIsEnumerable(property):判断给定的属性是否可以用for…in语句进行枚举。
toString():返回对象的原始字符串表示。对于Object类,ECMA-262没有定义这个值,所以不同的ECMAScriipt实现具有不同的值。
valueOf():返回最适合该对象的原值。对于许多类,该方法返回的值都与toString()的返回值相同。
直接循环arguments对象,赋值到新的数组中
var args = [];
for (var i = 0, length = arguments.length; i < length; i++) {
args.push(arguments[i]);
}
(2)方法2:
Array.prototype.slice.call(arguments); 或者:
[].slice.call(arguments);
注意:
NodeList(比如:document.getElementsByTagName("div"))在IE中就不能使用方法二将其转化为数组,因为在JavaScript中,一个Dom NodeList并非一个JavaScript对象,在IE中再使用var args = Array.prototype.slice.call(nodes, 0);就会抛错,这时就需要用最原始的办法解决(方法1或者方法3【容错】)
(2)方法3(容错)
function nodeListToArray(nodes) {
var arr;
try {
// 非IE支持
arr = [].slice.call(nodes);
return arr;
} catch (err) { //支持IE
arr = [];
for (var i = 0, length = nodes.length; i < length; i++) {
arr.push(nodes[i]);
}
return arr;
} }
总结:
(1)NodeList不是数组
验证NodeList是不是数组,最直接的方法也许是试一下Array专有的push和pop方法。
(2)JS的Object类的属性和方法
属性:
constructor:对创建对象的函数的引用(指针)。对于Object类,该指针指向原始的object()函数。
prototype:对该对象的对象原型的引用。对于所有的类,它默认返回Object对象的一个实例。
方法:
hasOwnProperty(property):判断对象是否有某个特定的属性。必须用字符串指定该属性(例如,o.hasOwnProperty(”name”))。
isPrototypeOf(object):判断该对象是否为另一个对象的原型。
propertyIsEnumerable(property):判断给定的属性是否可以用for…in语句进行枚举。
toString():返回对象的原始字符串表示。对于Object类,ECMA-262没有定义这个值,所以不同的ECMAScriipt实现具有不同的值。
valueOf():返回最适合该对象的原值。对于许多类,该方法返回的值都与toString()的返回值相同。
相关文章推荐
- Javascript写入txt和读取txt文件示例
- JSON详解
- <%@include%>与<jsp:include>的区别
- 一个jsonp的简单实例
- Java与JavaScript 完美实现字符串拆分(利用数组存储)与合并的互逆操作
- JS中判断null、undefined与NaN的方法
- js中时间戳转化成时间格式
- 【笔记】 《js权威指南》- 第14章 Window对象 14.8 多窗口和窗体
- javascript跳跃式前进(3) - 跳入JSON
- javascript跳跃式前进(3) - 跳入JSON
- javascript 中 slice()、substr() 和subString()使用
- angualrjs动态加载分析
- JavaScript javaScript中的Date 以及对原生javaScript的扩展
- javascript高级选择器querySelector和querySelectorAll
- ext js 知识点
- js cookie 设置
- 原生js制作日历控件实例分享
- Mock.js:前后端分离开发工具
- [Gulp Workflow] 在提交代码前使用jslint进行代码检查
- js解析json字符串数组