js基础--javascript基础概念之数组

js基础--javascript基础概念之数组

在ECMAScript 中 ,数组是很常用的数据类型,js中的数组和其他很多语言的数组有明显的区别。js的数组可以保持任何类型的数值,一个数组中可以保存着多个不同类型的数值。js数组大小(长度)是可以调整的。可以随着数据的添加自动增长数组长度。

创建数组:

一.数组字面量

数组字面量由一对包含数组项的方括号[]表示。

var array = [
‘kin‘,
‘cheong‘,
‘change‘,
‘hello‘,
‘haha‘,
‘hi‘
];
//创建了包含6个值的数组、

创建一个空数组:

var array = [];

创建数组错误方法:

var array = [,,,];
//创建了数组长度为3的数组。

如果你:

var array = [‘kin‘,‘hello‘,];//在IE中创建的也是长度为3的数组。分别是kin,hello undefined

在chrome中是创建长度为2的数组。

二.使用构造函数

var array = new Array();

如果想要给数组指定保存的项目数量,可以给构造函数传递该数量(长度)。如:

var array = new Array(10);
//能够保存10个项目长度的数组。

也可以使用构造函数创建数组时直接给数组传递值。如:

var array = new Array(‘kin’,’cheong’,’zhang’);
//传递了三个值到新创建数组。

使用构造函数创建数组可以省略new 操作符。如:

var array = Array(‘kin‘);

数组的访问、设置、新增。

访问:

对于这样一个数组:

var array = [‘kin‘,‘cheong‘,‘hello‘,‘haha‘,‘hi‘];//数组长度为4(以0为数字索引)
alert(array[0]);//kin读取数组中0位的值。
alert(array[5]);//undefined数组中没有定义的值。为undefined类型。

方括号中的数值为要访问数组的值,如果方括号中的数组小于数组中的项值,那么则会访问到数组中对应的项。

关于读取数组中最后的一个值,你也可以这样:

alert(array[array.length-1]);
//hi  因为数组长度值比数组项值大一。

设置|新增

数值的length属性不单单可以用来访问数组的具体某一项值,还可以对数值进行添加修改数组值。如:

array[1] = ‘zhang‘;//将数组中第2项值修改为’zhang’ 值
array[5] = ‘new value‘//像这个数组中没有的项数,则对数组进行新增一个项值。数组长度自动会增加一。

另外。数组可以使用length属性对数值进行移除数值项。如:

array.length = 3;
// 数组中只有3个项值。其他项将会删除。

由于数组的最后一个位置始终是length-1,所以下一个新的数值项就是length。每当数组末尾添加一个项后。起length属性都会自动更新以反应这一变化。当然你也可以像下面一样在数组末尾添加一个新值。

array[array.length]  =  ‘new value‘

但是,假如当你将数组的length属性设置为10,你在数组后面新添加的数值项将是11.如

var array = [‘kin‘,‘cheong‘,‘hello‘,‘haha‘,‘hi‘];
array.length = 10;
array[array.length] = ‘new‘;
alert(array.length);//11
alert(array[8]);//undefined  那些没有的数组项
array[100] = ‘value‘;//在数组第101个数组项中添加一个值。
alert(array.length)//数组的长度自动变成101
alert(array[80]);//当然,中间没有设置的值都将会变成undefined 类型

数组的检测

使用 instanceof  检测;

如:

var array = [‘kin‘,‘cheong‘,‘hello‘,‘haha‘,‘hi‘];
alert( array  instanceof  Array);// array  是 Array 类型?返回的答案是true

当是,使用instanceof 有一个弊端。它只能有一个全局环境。如果网页中包含多个框架那么,就是说页面中有多个全局环境了,而存在两个以上不用的Array 构造函数,如果一个框架像另一个框架传入一个数组。那么,传入的数组与在第二个框架中原生创建的数组分别具有各自不同的构造函数。新的方法可以解决这个问题。

如下:

var array = [‘kin‘,‘cheong‘,‘hello‘,‘haha‘,‘hi‘];
alert(Array.isArray(array));//true

Array.isArray(数组名称)  支持这个方法的浏览器有IE9 Firefox safari ……

数组转换方法

在js中  所有对象都具有toLocaleString() 、 toString() 、 valueOf() 方法。

在数组中  调用toString()方法会由数组中每个值的字符串拼接成由逗号分隔的一个字符串。如:

var array = [‘kin‘,‘cheong‘,‘hello‘,‘haha‘,‘hi‘];
alert(array.toString());//‘kin‘,‘cheong‘,‘hello‘,‘haha‘,‘hi‘ 这是一个字符串。由‘,’ 拼接。

调用valueOf() 方法返回的则依然是一个数组。但是他为了这个数组中每一个值都调用了一遍toString() 方法。然后输出的依然是这个数组。

如:

var array = [‘kin‘,‘cheong‘,‘hello‘,‘haha‘,‘hi‘];
alert(array.valueOf());//‘kin‘,‘cheong‘,‘hello‘,‘haha‘,‘hi‘

如果直接使用

alert(array);

和使用toString() 方法是几乎一样的效果的。因为数组直接传递到了alert  而alert 会在后台调用toString() 方法。然后alert。

js基础--javascript基础概念之数组,布布扣,bubuko.com

时间: 2024-10-27 05:46:57

js基础--javascript基础概念之数组的相关文章

js基础--javascript基础概念之数组(二)

js基础--javascript基础概念之数组 数组栈方法 数组可以像栈一样.栈是一种先进后出的数据结构,最先添加的数据最后一个出来.栈方法添加数据也称为 推入  移除数据称为 弹出. js为数值栈方法提供了 push()   和  pop() ;  两个方法. push() push() 方法接受参数就是你要添加进入到数组的值.push()  方法会将他们逐一添加到数组的末尾  数组的length属性会跟着更新数据. *push(多个数组元素值) 返回的修改后的数组长度 var array =

js基础--javascript基础概念之语法

掌握一门语言 必须先掌握它的语法! javascript 的语法和C.Java.Perl 的语法有些相似.但是比它们更加宽松. javascript 中的一切都是严格区分大小写的.例如变量: demo 和 Demo 两个变量是完全不同的. javascript 标示符,所谓标示符 是指 变量.函数.属性 的名字或函数的参数.标示符的格式是按照以下规则组合的一个或多个字符. 1.第一个字符必须是字母,下划线,或 $ 符号. 2.其他字符可以是字母.下划线.$ . 或数字. 注意 不能把关键字 保留

js基础--javascript基础概念之语句(二)

js基础--javascript基础概念之语句(二)label,break,continue.. break .  continue 语句. break  continue 语句用于在循环中精确控制代码的执行,其中break语句会立即退出循环,执行循环后面的语句. continue 则退出循环后返回到再次进入循环中. 如: var num = 0; for(var i = 0; i<=100; i++){ if(i >= 10){ break; } num = i; } alert(num);

js基础--javascript基础概念之变量与作用域

js基础--javascript基础概念之变量.作用域 javascript按照ECMA-262 的定义,变量与其他语言变量有所不同.js变量时松散的,不需要事先定义变量类型的.这使得他只是一个保存特定值的一个名称.变量与其数据类型可以在脚本的生命周期内改变. 还有明白几点: JavaScript的变量作用域是基于其特有的作用域链的,JavaScript没有块级作用域. 基本类型和引用类型的值 ECMAScript 的变量有两种不同的数据类型:分别是 基本数据类型值 和 引用类型值 : 基本数据

js基础--javascript基础概念之语句

js基础--javascript基础概念之语句 ECMA-262定义了一组语句(流程控制语句) 语句定义了EMCAScript 语法. 常见的if语句. 语法: if(condition) statement1 else statement2 其中.Condition 可以是任意表达式.而且对这个表达式求值的结果不一定是布尔值.因为script 会自动调用boolean 将值转换为布尔值.如果condition 的值是 true .则执行statement1 语句  否则  执行 stateme

前段基础----JavaScript基础

一.JavaScript概述 1,JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言) Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigator 2.0产品中开发出一套livescript的脚本语言.Sun和Netscape共同完成.后改名叫Javascript 微软随后模仿在其IE3.0的产品中搭

11-23网页基础--JavaScript基础知识

第一课 JavaScript简介 一.定义:JavaScript是脚本语言,需要宿主文件,它的宿主文件是html文件. JavaScript 是一种轻量级的编程语言. JavaScript 是可插入 HTML 页面的编程代码. JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行. 二.用法:在html中的位置有三块:1)head里面:2)body里面:3)</html>之后,为了保险起见一般写在</html>之后.<script language=&quo

一个简单的、面向对象的javascript基础框架

如果以后公司再能让我独立做一套新的完整系统,那么我肯定会为这个系统再写一个前端框架,那么我到底该如何写这个框架呢? 在我以前的博客里我给大家展示了一个我自己写的框架,由于当时时间很紧张,做之前几乎没有完整的思考过我到底该如何去写这个框架,所以事后对于这个框架我有很多遗憾之处,当我重构过一次代码后我就没再做过任何重构操作的工作,因为我根本不想再去给它修修补补了,之所以有这个想法,就是我对我写的那个框架的基础架构不满意. 为什么不满意这个基础架构了?我们先来看看我当时封装框架的方式: (functi

javascript基础入门之js中的数据类型与数据转换01

javascript基础入门之js中的数据结构与数据转换01 js的组成(ECMAScript.BOM.DOM)        js中的打印语句:        数据类型        变量        运算符        数据类型转换        js中三大特殊值 js的组成(ECMAScript.BOM.DOM) ①ECMAScript: ECMAScript是一个标准,它规定了语法.类型.语句.关键字.保留子.操作符.对象.(相当于法律):②BOM(浏览器对象模型):对浏览器窗口进行