一、 学好JavaScript的基础,Array类是必不可少的,也许你每天都在写JS,那么对于Array类,你到底用了多少呢?下面列举一下Array类内置的方法:
1、构造方法:
- var a = new Array();
-
var a = new Array;
-
var a = new Array(10);
-
-
var a = new Array("a","b","c");
-
var a = ["a","b","c"];
-
-
var a =[["a","b","c"],[1,2,3]];
var a = new Array(); //创建Array对象
var a = new Array;//创建Array对象
var a = new Array(10);//创建Array对象,并指定数组中项的个数
var a = new Array("a","b","c"); //数组a,b,c
var a = ["a","b","c"];//数组a,b,c
var a =[["a","b","c"],[1,2,3]];//多维数组
2、toString、valueOf
-
-
var a =["a","b","c"];
-
var s = a.toString();
- alert(s);
-
var s2 = a.valueOf();
- alert(s2);
//把数组转化为","号隔开的字符串?很简单:
var a =["a","b","c"];
var s = a.toString();
alert(s);
var s2 = a.valueOf();
alert(s2);
3、join
-
-
var a =["a","b","c"];
-
var s = a.join("-");
- alert(s);
//厌倦了","号隔开的字符串?那么:
var a =["a","b","c"];
var s = a.join("-");//想用什么隔开呢?在这里写吧,当然","也是可以的
alert(s);
-
-
var s = "a-b-c";
-
var a =s.split("-");
- alert(a);
//反悔了?倒过来把字符串转化为数组?
var s = "a-b-c";
var a =s.split("-");
alert(a);
-
-
var a1 = new Array(1,2,3);
-
var a2 = new Array("a","b","c");
-
var a3 = a1.concat(a2);
- alert(a3);
//用for循环来合并?没那么麻烦
var a1 = new Array(1,2,3);
var a2 = new Array("a","b","c");
var a3 = a1.concat(a2);
alert(a3);
6、splice
-
-
var a1 = new Array(1,2,3);
-
var a2 = new Array("a","b","c");
-
var a3 = a1.concat(a2);
- alert(a3);
-
var a4 = a3.splice(1,2);
-
alert(a3+" "+a4);
//删除?很灵活
var a1 = new Array(1,2,3);
var a2 = new Array("a","b","c");
var a3 = a1.concat(a2);
alert(a3);
var a4 = a3.splice(1,2); //从a3中删除从下标为1开始的2项,返回删除的结果给a4
alert(a3+" "+a4);
-
-
var a1 = new Array(1,2,3);
-
var a2 = a1.push(4);
-
alert(a1+" "+a2);
-
var a3 = a1.pop();
-
alert(a1+" "+a3);
//栈的数据结构要自己来写?不需要
var a1 = new Array(1,2,3);
var a2 = a1.push(4); //顶部压入4,返回压入的对象
alert(a1+" "+a2);
var a3 = a1.pop(); //顶部弹出顶部第一个对象,返回弹出对象
alert(a1+" "+a3);
8、shift、unshift
-
-
var a = new Array(1,2,3);
-
var i1 = a.shift();
-
alert(i1+" "+a);
-
var i2 = a.unshift(1);
-
alert(i2+" "+a);
//倒转栈结构?来得更轻松
var a = new Array(1,2,3);
var i1 = a.shift(); //删除数组的第一项,将其作为函数返回值
alert(i1+" "+a);
var i2 = a.unshift(1); //加入一项放在数组的第一个位置,原来的项分别往下移一个位置
alert(i2+" "+a);
9、sort,reverse
-
-
var a = new Array(1,2,6,3,9,5,7);
- a.sort();
- alert(a);
-
var a = new Array(1,2,6,3,9,5,27);
- a.sort();
- alert(a);
-
- a.reverse();
- alert(a);
//排序?简单,但是它是按照字符串排序的哦尽管是数字
var a = new Array(1,2,6,3,9,5,7);
a.sort();
alert(a);
var a = new Array(1,2,6,3,9,5,27);//注意这里排序会让你意外哦[1,2,27,3,5,6,9]
a.sort();
alert(a);
//想倒序?
a.reverse();
alert(a);
10、再论splice
-
-
var a =["a","d","e"];
-
a.splice(1,0,'b','c');
- alert(a);
-
a.splice(3,2,'dd','ee');
- alert(a);
//第6条中已经说明了它的删除功能,它还能插入、替换
var a =["a","d","e"];
a.splice(1,0,'b','c'); //在位置1(即d)处删除0个项,并插入['b','c'],即插入
alert(a);
a.splice(3,2,'dd','ee'); //在位置3处删2个项,并插入['dd','ee'],即替换
alert(a);
二、再看看判断一个对象是否为Array对象的方法
- isArray: function(object) {
-
return object != null && typeof object == "object" &&
-
'splice' in object && 'join' in object;
- }
isArray: function(object) {
return object != null && typeof object == "object" &&
'splice' in object && 'join' in object;
}
这个是抄袭prototype的,看看吧,对象不为空且对像类型为object且该对象有splice方法和join方法。也对对你有所启发,毕竟JS有它的特色。
三、一些有用的扩展:
- <input type="button" value="测试获取数组下标" onclick="testIndexOf()" />
- <script>
-
-
if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {
- i || (i = 0);
-
var length = this.length;
-
if (i < 0) i = length + i;
-
for (; i < length; i++)
-
if (this[i] === item) return i;
-
return -1;
- };
-
-
function testIndexOf()
- {
-
var a =[1,2,3];
- alert(a.indexOf(2));
- }
<input type="button" value="测试获取数组下标" onclick="testIndexOf()" />
<script>
// use native browser JS 1.6 implementation if available
if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {
i || (i = 0);
var length = this.length;
if (i < 0) i = length + i;
for (; i < length; i++)
if (this[i] === item) return i;
return -1;
};
function testIndexOf()
{
var a =[1,2,3];
alert(a.indexOf(2));
}
上面的举例获取数组中某项的下标,还有像:把数组里的项唯一化(uniq)、最后一个位置(lastIndexOf)等等,你都可以扩展。并且你可以借鉴prototype的库,mootools的库等等,里面的有些写法很是经典,可以学习学习。
相关推荐
此外,JavaScript还提供了很多内置对象和方法,如Array、Date、Math等,熟悉它们的用法能提高编程效率。还有错误处理和调试技巧,比如try...catch、console.log和开发者工具的使用,都是开发者日常工作中不可或缺的...
<script language="JavaScript" src="filename.js"> ``` 5. **注释**:JavaScript 使用 `//` 单行注释和 `/* ... */` 多行注释。 6. **输出到浏览器**:使用 `document.write` 函数将内容输出到浏览器。 ```...
学习精通JavaScript不仅需要掌握上述知识点,还需要不断实践,了解最佳实践,关注最新的开发趋势和技术更新,以便在实际项目中游刃有余。通过阅读《精通JavaScript(图灵计算机科学丛书)》这本书,你将能够系统地学习...
在JavaScript中,可以使用多种方法创建新对象,包括使用对象字面量、构造函数以及ES6中引入的类。 - **对象字面量**:通过直接写明属性和值来创建对象。 - **构造函数**:定义一个函数并在其中设置对象的属性和方法...
《JavaScript从入门到精通》的课程旨在为初学者提供全面的学习资源,帮助他们掌握这一强大的工具。 在学习JavaScript时,首先要理解其基本语法和数据类型,包括变量声明(var, let, const)、常量、字符串、数字、...
"精通JavaScript之500经典案例"提供了丰富的实践资源,帮助开发者深入理解和掌握这门强大的脚本语言。以下是对这些经典案例中可能涵盖的JavaScript知识点的详细解析: 1. **基础语法**:包括变量声明(var、let、...
JavaScript是基于对象的,这意味着它内建了许多内置对象,比如Array、Date和Math,开发者可以利用这些对象进行编程。同时,JavaScript也是一种事件驱动的语言,它允许程序根据用户的交互或特定时间点触发动作。 ...
1_3.htm JavaScript中的强制类型转换。 1_4.htm 在HTML中为JavaScript传递变量。 1_5.htm 在HTML中引用JavaScript的变量。 1_6.htm 比较undefined和"undefined"。 第2章(\2) 示例描述:客户端的流程控制...
《精通JavaScript+jQuery》这本书是IT领域中关于前端开发的经典之作,主要涵盖了JavaScript语言的核心概念以及jQuery库的广泛使用。JavaScript是一种广泛应用于网页和互联网应用的脚本语言,而jQuery则是一个轻量级...
虽然原描述中并未提供关于内容的具体细节,但基于标题“精通JavaScript动态网页编程”以及提及的标签“javascript”,我们可以合理推测该资源主要涵盖了JavaScript语言的核心概念、基本语法、高级特性以及如何运用...
2. **基于对象**:JavaScript支持基于对象的编程,允许开发者利用内置对象(如Array、Date等)或自定义对象进行操作。 3. **简单性**:JavaScript语法简洁,易于学习,适合初学者快速上手。 4. **安全性**:...
最后,书中可能会介绍一些实际项目案例,如使用JavaScript进行Ajax请求、构建单页应用(SPA)、或者配合Node.js进行服务器端开发,帮助读者将理论知识转化为实践经验。 总的来说,"javascript从入门到精通"这本书将...
以下是对标题和描述中提到的JavaScript知识点的详细解释: ### 1. 自定义函数 JavaScript中的函数是第一类对象,可以作为变量赋值、作为参数传递或作为其他函数的返回值。自定义函数使用`function`关键字定义,参数...
### JavaScript深度剖析:从入门到精通 #### 一、JavaScript语言概述 JavaScript,自诞生以来,已成为互联网时代不可或缺的一部分,特别是在Web开发领域。作为一种轻量级的解释型或即时编译型的脚本语言,...
函数式编程在JavaScript中占有重要地位,包括高阶函数、函数作为一等公民的概念,以及Array.prototype上的方法(如map、filter、reduce等),这些都是提升代码质量和可读性的关键工具。 面向对象编程(OOP)在...
JavaScript,简称JS,是一种轻量级的解释型编程语言,广泛应用于网页和互联网应用开发,是前端开发的核心技术之一。本教程“JavaScript从入门到精通”深入浅出地介绍了JavaScript的各项基础与高级特性,旨在帮助初学...
- **原型链**:了解JavaScript中对象之间的继承关系。 #### 5. 异步编程 - **回调函数**:传统异步编程的基础。 - **Promise**:解决回调地狱问题的有效方案。 - **async/await**:使异步代码更像同步代码编写方式...