`

JavaScript开发小建议

 
阅读更多

1. 用数组长度截取数组

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

 

1
2
3
4
var arr1 = arr2 = [1, 2, 3];
 
//Change arr1
arr1 = [];// 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()来合并两个数组,例如:

 

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

 

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

 

1
2
3
4
5
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里,我们能看到一些特征检测语句,这些语句是用来检查浏览器是否支持特定的属性或方法,以便能够支持跨浏览器兼容性。可以这样做:

 

1
2
3
4
5
if(window.opera){
    console.log("OPERA");
}else{
    console.log("NOT OPERA");
}

 

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

 

1
2
3
4
5
if("opera" in window){
    console.log("OPERA");
}else{
    console.log("NOT OPERA");
}

 

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

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

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

 

 
 
3
var obj=[];
Object.prototype.toString.call(obj)=="[object Array]";
true
 
 
分享到:
评论

相关推荐

    JavaScript前端开发案例教程-源代码.rar

    JavaScript,作为全球最广泛使用的编程语言之一,是前端开发的核心技术。这个名为"JavaScript前端开发案例教程-源代码.rar"的压缩包文件提供了一系列实践案例,帮助开发者深入理解和掌握JavaScript在网页开发中的...

    javascript开发工具

    JavaScript开发工具是编程者在创建和调试JavaScript代码时不可或缺的辅助软件。这些工具极大地提高了开发效率,减少了因语法错误或逻辑问题导致的错误。在本文中,我们将深入探讨JavaScript开发工具的重要性和它们...

    JavaScript开发精讲视频教程

    本“JavaScript开发精讲视频教程”旨在帮助初学者从零开始掌握这一强大的编程语言,逐步进阶到高级应用。教程内容涵盖JS的基础知识、事件处理、变量与数据类型、函数以及面向对象编程等核心概念。 1. **JavaScript...

    Javascript开发规范

    JavaScript 开发规范 概述:本文档提供了一份关于 JavaScript 开发规范的指南,旨在帮助开发者编写高质量的 JavaScript 代码。本规范涵盖了变量、常量、分号、嵌套函数、块内函数声明等方面的规则和建议。 一、...

    javascript网页开发-张孝祥.pdf

    根据提供的信息,我们可以推断这份文档“javascript网页开发-张孝祥.pdf”主要涉及JavaScript在网页开发中的应用。虽然给出的部分内容并未包含实际的技术细节,但我们可以基于标题、描述以及标签来推测并展开相关的...

    JSP开发基于JavaScript的微信小程序龙舟大战游戏源码(课程设计项目).zip

    JSP开发基于JavaScript的微信小程序龙舟大战游戏源码(课程设计项目).zipJSP开发基于JavaScript的微信小程序龙舟大战游戏源码(课程设计项目).zipJSP开发基于JavaScript的微信小程序龙舟大战游戏源码(课程设计项目)....

    用JavaScript开发购物车(含源代码)

    在JavaScript开发中,创建一个购物车功能是一项常见的任务,它涉及到网页动态交互和数据管理。在本项目中,我们将深入探讨如何使用JavaScript实现一个基本的购物车系统,同时结合Asp.net作为后端支持。 首先,...

    JavaScript快速开发工具箱

    - 提供了关于如何编写高效、易于维护的JavaScript代码的建议。 - 包括代码格式化、注释规范、性能优化等方面的知识。 5. **面向未来的开发实践** - 尽管本书有意避免了一些高级概念,但在某些情况下还是提到了...

    javascript& jQuery 交互式Web前端开发 高清版本

    它的出现降低了JavaScript开发的门槛,使得开发者可以用更简洁的代码实现复杂的功能。jQuery的主要特点有: 1. **选择器**:jQuery提供了丰富的选择器语法,能够快速准确地选取DOM元素,比如`$("#id")`选取ID为id的...

    JavaScript 案例教程源码

    在学习这个教程时,建议你按照章节顺序逐步学习,每完成一个章节就尝试自己动手实践,理解并掌握每个概念。同时,不要忘记查阅MDN Web文档等权威资料,以获取更详细的解释和示例。这样,你不仅可以熟悉JavaScript的...

    基于JavaScript开发的大学英语教材的单词默写器源码.zip

    基于JavaScript开发的大学英语教材的单词默写器源码.zip基于JavaScript开发的大学英语教材的单词默写器源码.zip基于JavaScript开发的大学英语教材的单词默写器源码.zip基于JavaScript开发的大学英语教材的单词默写器...

    javascript开发工具jseditorpro v10.0

    JavaScript开发工具JSEditorPro v10.0是一款专为JavaScript编程设计的强大开发环境,它集成了多种功能,旨在提升开发者的工作效率,使JavaScript编写过程更加流畅。这款工具的核心特性包括语法高亮显示,代码编译...

    精选javascript开发最常用技术

    "精选JavaScript开发最常用技术"这个主题涵盖了JavaScript编程的核心概念和技术,旨在帮助开发者掌握JavaScript的基础以及一些高级特性,以提升开发效率和代码质量。下面我们将深入探讨这些关键知识点。 1. **基础...

    [jQuery.JavaScript与CSS开发入门经典].(约克).施宏斌等.扫描版

    同时,书中可能还包含了一些解决常见问题和优化技巧的建议,这对于提升开发效率和创建高质量的Web应用至关重要。 总的来说,《jQuery、JavaScript与CSS开发入门经典》是一本全面覆盖前端开发基础知识的教程,适合...

    基于JavaScript开发的宠物店预约小程序源码+说明文档+操作手册.zip

    基于JavaScript开发的宠物店预约小程序源码+说明文档+操作手册.zip该项目是一个利用JavaScript开发的宠物店预约小程序,旨在为用户提供一个便捷、高效的平台来预约宠物美容、寄养、疫苗接种等服务。 【说明】 【1】...

    编写高质量代码-改善JavaScript程序的188个建议,完整扫描版

    《编写高质量代码:改善javascript程序的188个建议》是web前端...书中的每一条建议都可能在你的下一行代码、下一个应用或下一个项目中被用到,建议你将此书放置在手边,随时查阅,一定能使你的学习和开发工作事半功倍。

    1500个前端开发常用JavaScript特效

    JavaScript是前端开发中不可或缺的一部分,它是网页动态效果和交互的核心技术。这个名为“1500个前端开发常用JavaScript特效”的资源包,包含了丰富的实例,旨在帮助初学者深入理解和运用JavaScript,快速提升技能...

    JavaScriptEnhancements是一个辅助JavaScript开发的SublimeText3插件

    在"JavaScript开发-其它杂项"这一标签中,我们可以理解到,JavaScript Enhancements虽然专注于JavaScript开发,但它涵盖的范围远不止语言本身,还包括与之相关的各种开发工具和实践。例如,它可能包含对Node.js项目...

Global site tag (gtag.js) - Google Analytics