说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

对新手有用的JavaScript开发小建议

HTML文档下载 WORD文档下载 PDF文档下载
针对JavaScript编程技术里面的技巧问题,笔者总结了几点规律,包括用数组长度截断数组、用push来合并数组、特征检测、检查某一个对象是不是数组等方法来进行编程。希望对各位初学JavaScript编程的开发者有帮助。

这篇文章将向你分享一些不为人知的但很有用的JavaScript小建议,对那些刚涉及使用JavaScript编程语言的初级开发者应该有很大的帮助。

1. 用数组长度截取数组

我们都知道,对象都是通过使用JavaScript引用的,但这并不是唯一的准则,请看下面的检验案例:

var arr1 = arr2 = [1, 2, 3]; //Change arr1arr1 = [];// arr2 will still be [1,2,3]

最初,arr1和arr2都指向了数组[1,2,3],之后当arr1重新指向[ ]的时候,arr2的引用并没有发生什么变化,仍然指向[1,2,3]。但是如果我们想让arr1和arr2都指向[ ]的话,那应该怎么做呢?我们可以利用数组的长度属性。当设置arr1.length=0的时候,arr1里面的要素将被清空。而引用是不会改变的,所以arr1和arr2指向[ ]。

2. 用push来合并数组

我们通常使用concat()来合并两个数组,例如:

var arr1=[1,2,3];var arr2=[4,5,6];var arr3=arr1.concat(arr2);arr3;[1, 2, 3, 4, 5, 6]

我们同样可以利用push()来达到这种效果:

var arr1=[1,2,3];var arr2=[4,5,6];Array.prototype.push.apply(arr1,arr2);arr1[1, 2, 3, 4, 5, 6]

应用这种方法可以把一个数组作为第二个参数,因此,arr2能够被推送到arr1里面。

3. 特征检测

在我们使用的很多API里,我们能看到一些特征检测语句,这些语句是用来检查浏览器是否支持特定的属性或方法,以便能够支持跨浏览器兼容性。可以这样做:

if(window.opera){    console.log("OPERA");}else{    console.log("NOT OPERA");}

这样的运作方式是正确的,但它的缺点是效率不高。这种类型的对象检测将在浏览器里初始化资源。更有效地方式是检查密钥是否在某一个对象里。

if("opera" in window){    console.log("OPERA");}else{    console.log("NOT OPERA");}

4. 检查某一个对象是不是数组

在JavaScript编程语言里,我们可以使用typeof来检查变量的类型,typeof可以返回数字、布尔值、字符串、对象、函数和未定义的对象。事实上这里没有数组,typeof数组就是一个对象。所以我们怎么来决定一个对象就是一个数组呢?在ECMAScript 5编程语言里,我们可以使用 Array.isArray(obj)来检查这里所提到的问题。但是目前ECMAScript 5还没有得到广泛使用。

不过,我们可以使用下面的方法:

var obj=[];Object.prototype.toString.call(obj)=="[object Array]";true

原文:Pixels Tech

MySQL再度失势:继维基百科之后,Google也迁移到了MariaDB Werner Vogels:亚马逊热爱艺术的CTO Jolla宣布Sailfish OS兼容Android手机硬件和应用 为什么项目估算偏差如此之大? Cloud Connect大会Day2:开源与云数据中心 执行后datagrid不见了,怎么回事? DLL调用问题。大家看看,盼解! 50 分求一 sql server 表达式 关于程序继承的问题,请大家帮我看看。 相同条件下insert和update一条记录那个速度快? 没分了!!! 在activex控件中打开一个word进程,能不能把word关闭的消息传递到activex 控件中 jspSmartUpload实例的有3条语句出错,我不知道原因,大家来看看! 求教:如何将datagrid中的数据导入到EXCEL报表模板中?在线等! 请教三脚猫,关于您的无组件上传问题(其他兄弟会的也请进来看一看^_^) 为什么要用多级火箭发射卫星 水母和海蛰的区别 水母与海蛰的区别 螳螂车轮是什么成语 螳螂,车轮是什么成语 如何区分海蛰和水母是如何区分啊,不是有什么区别,看 海蛰和水母有什么分别 飞蛾那种求生的欲望令我震惊.(不改变意思但换个说法 填什么方位词可以组成成语?( )指( )画 党报评陈永洲事件:有职业操守才有媒体(今日海外言论 10月28日)安倍:悉尼歌剧院40周年庆典 丹麦王储携王澳洲华人热衷房产投资 帮助国内亲戚购美国防机构研发光微型传感器 可助导航浙江小伙交500女网友骗财色 自称“合肥一仓库大火连烧45小时 61岁女继承六万存款要开八项证明 小伙辞工作价值200万抵押房被借款人25万贱卖身家30亿 43岁富豪心梗去世网络少帅网游之杀戮者最强丹师刺帝英灵君王塔里木沙漠公路旅游库车王府旅游库车大巴扎旅游天山神秘大峡谷旅游果子沟旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘