文档章节

Javascript之类数组转换为数组

 沉非
发布于 2017/07/15 18:02
字数 416
阅读 5
收藏 0

兼容问题:在IE6~8中,不支持借用数组的slice实现将元素集合类数组对象转换为数组的方法,同样,节点集合也是不支持的,但是arguments则没有关于浏览器的兼容问题。

在标准浏览器中(谷歌,火狐,IE9及以上):

Array.prototype.slice.call(类数组)

非标准浏览器下(IE6,7,8):

使用循环的方式,

for(var i=0; i<类数组.length;i++){

    ary[ary.length] = 类数组[i]

}

2:浏览器的异常信息捕获:

在JS中使用try,catch进行浏览器的异常信息捕获

try{

console.log(num) //正常进行的话会报错,num is not defind,但是放在try,catch中会,如果try中的代码出错了,则执行catch中的代码

}catch (e.message){ //形参必须要写,一般叫做为e

console,log(e.message)  // 📱当前代码报错的原因

console.log('ok')

};

正常中项目中都会使用下面的格式

try{

    //<js code>

}catch(e){

//如果代码报错执行catch中的代码

}finally{

    //一般不用,不管try中的代码会不会报错,都会执行这里面的代码

}

//但有时候既想捕获到错误的信息,又想不让下面的代码执行

try{

console.log(num) 

}catch (e.message){ //形参必须要写,一般叫做为e

//手动抛出一条错误信息,终止代码执行

throw new Error('错误信息')

};

//常见错误类型

new ReferenceError:引用错误

new TypeError:类型错误

new RangeError:范围错误

 

//书写一个完整的类数组转为数组的方法

var utils = {

    listToArray : function(likeAry){

        var ary = [];

        try{

            ary=Array.prototype.slice.call(likeAry)

        }cacth(){      

            for(var i=0; i<likeAry.length;i++){

                ary[ary.length] = likeAry[i]

            }

        } 

    }

}

© 著作权归作者所有

粉丝 1
博文 32
码字总数 24934
作品 0
海淀
程序员
私信 提问
JavaScript中call()与apply()有什么区别?

今天读《JavaScript权威指南》时发现其中有段代码用到了apply方法用于递归实现数组的展开。可是我不懂这个函数的用法,因此查了一下,将资料整理如下。 Javascript的每个Function对象中有一个...

小微
2012/08/27
0
1
JavaScript之类数组对象和arguments

JavaScript之类数组对象和arguments 类数组对象 所谓类数组对象就是拥有一个length属性和若干个索引属性的对象 Arguments对象就是一个类数组对象 一个DOM方法 (document.getElementsByTagNa...

何祯粮
03/10
0
0
《JavaScript权威指南》笔记(二)

第二篇笔记的内容主要涉及:数据类型转换,函数、对象、数组的创建以及null与undefined的比较。 1. javascript中类型转换的方法: (1)数字-->字符串: number+" "; String(number); number...

小微
2012/08/28
0
7
数据提取之JSON与JsonPATH

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的...

张元江_erel
2018/11/28
0
0
TypeScript 学习总结 基础数据类型(一)

写在前面: 因为typescript文档个人感觉并不友善(概念过于杂乱,示例代码有错误~)。所以个人学习笔记总结,并不涉及typescript各种历史和一些什么javascript超集啊之类的介绍。想学习typescr...

baozaomiao
06/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

NIO基于长度域的报文在Netty下的解码

1, 先复习一下粘包/拆包 1.1, 粘包/拆包的含义 TCP是个“流”协议, 并不了解上层业务数据的具体含义, 它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP...

老菜鸟0217
今天
8
0
从零开始搭建spring-cloud(2) ----ribbon

在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。 其实我们已经在上...

Vincent-Duan
今天
19
0
get和post的区别?

doGet:路径传参。效率高,安全性差(get的传送数据量有限制,不能大于2Kb) doPOST:实体传参。效率低,安全性好 建议: 1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Pos...

花无谢
昨天
4
0
当谈论迭代器时,我谈些什么?

当谈论迭代器时,我谈些什么? 花下猫语:之前说过,我对于编程语言跟其它学科的融合非常感兴趣,但我还说漏了一点,就是我对于 Python 跟其它编程语言的对比学习,也很感兴趣。所以,我一直...

豌豆花下猫
昨天
14
0
10天学Python直接做项目,我做了这5件事

初学者如何尽快上手python? 市面上关于如何学python的资料很多,但是讲的都太复杂。 我就是很简单的几句话,从小白到开发工程师,我只做了五件事。 我觉得任何商业计划书如果不能用几句话讲...

Python派森
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部