首页技术js中array对象的常用方法,JS Array的语法格式

js中array对象的常用方法,JS Array的语法格式

编程之家2026-07-021114次浏览

今天给各位分享js中array对象的常用方法的知识,其中也会对JS Array的语法格式进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

js中array对象的常用方法,JS Array的语法格式

Javascript中数组的常用方法有哪些

concat()连接两个或更多的数组,并返回结果。

join()把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

pop()删除并返回数组的最后一个元素

push()向数组的末尾添加一个或更多元素,并返回新的长度。

reverse()颠倒数组中元素的顺序。

shift()删除并返回数组的第一个元素

js中array对象的常用方法,JS Array的语法格式

slice()从某个已有的数组返回选定的元素

sort()对数组的元素进行排序

splice()删除元素,并向数组添加新元素。

toSource()返回该对象的源代码

toString()把数组转换为字符串,并返回结果。

toLocaleString()把数组转换为本地数组,并返回结果。

js中array对象的常用方法,JS Array的语法格式

unshift()向数组的开头添加一个或更多元素,并返回新的长度。

valueOf()返回数组对象的原始值

JavaScript中判断对象类型的几种方法总结_基础知识

我们知道,JavaScript中检测对象类型的运算符有:typeof、instanceof,还有对象的constructor属性:

1) typeof运算符 typeof是一元运算符,返回结果是一个说明运算数类型的字符串。如:"number","string","boolean","object","function","undefined"(可用于判断变量是否存在)。但 typeof的能力有限,其对于Date、RegExp类型返回的都是"object"。如:

typeof{};//"object"

typeof [];//"object"

typeof new Date();//"object"

所以它只在区别对象和原始类型的时候才有用。要区一种对象类型和另一种对象类型,必须使用其他的方法。如:instanceof运算符或对象的 constructor属。

2)instanceof运算符。 instanceof运算符要求其左边的运算数是一个对象,右边的运算数是对象类的名字或构造函数。如果 object是 class或构造函数的实例,则 instanceof运算符返回 true。如果 object不是指定类或函数的实例,或者 object为 null,则返回 false。如:

[] instanceof Array;// true

[] instanceof Object;// true

[] instanceof RegExp;// false

new Date instanceof Date;// true

所以,可以用instanceof运算符来判断对象是否为数组类型:

function isArray(arr){

return arr instanceof Array;

}

3)constructor属性。 JavaScript中,每个对象都有一个constructor属性,它引用了初始化该对象的构造函数,常用于判断未知对象的类型。如给定一个求知的值通过typeof运算符来判断它是原始的值还是对象。如果是对象,就可以使用constructor属性来判断其类型。所以判断数组的函数也可以这样写:

function isArray(arr){

return typeof arr=="object"&& arr.constructor== Array;

}

很多情况下,我们可以使用instanceof运算符或对象的constructor属性来检测对象是否为数组。例如很多JavaScript框架就是使用这两种方法来判断对象是否为数组类型。但是检测在跨框架(cross-frame)页面中的数组时,会失败。原因就是在不同框架(iframe)中创建的数组不会相互共享其prototype属性。例如:

代码如下:

window.onload=function(){

var iframe_arr=new window.frames[0].Array;

alert(iframe_arr instanceof Array);// false

alert(iframe_arr.constructor== Array);// false

}

在Ajaxian上看到了一种精确的检测方法,跨原型链调用toString()方法:Object.prototype.toString()。可以解决上面的跨框架问题。当Object.prototype.toString(o)执行后,会执行以下步骤: 1)获取对象o的class属性。 2)连接字符串:"[object"+结果(1)+"]" 3)返回结果(2)例如:

Object.prototype.toString.call([]);//返回"[object Array]"

Object.prototype.toString.call(/reg/ig);//返回"[object RegExp]"

这样,我们就可以写一个健壮的判断对象是否为数组的函数:

代码如下:

function isArray(arr){

return Object.prototype.toString.call(arr)==="[object Array]";

}

此种方法得到国外多个javaScript大师的认可,在即将发布的jQuery 1.3中将使用这种方法来检测数组。 prototype.js的一个维护者写了下面这个函数,用于获取对象的类型名

代码如下:

/**

* Returns internal [[Class]] property of an object

*

* Ecma-262, 15.2.4.2

* Object.prototype.toString()

*

* When the toString method is called, the following steps are taken:

* 1. Get the [[Class]] property of this object.

* 2. Compute a string value by concatenating the three strings"[object", Result(1), and"]".

* 3. Return Result(2).

*

* __getClass(5);//=>"Number"

* __getClass({});//=>"Object"

* __getClass(/foo/);//=>"RegExp"

* __getClass('');//=>"String"

* __getClass(true);//=>"Boolean"

* __getClass([]);//=>"Array"

* __getClass(undefined);//=>"Window"

* __getClass(Element);//=>"Constructor"

*

*/

function __getClass(object){

return Object.prototype.toString.call(object).match(/^\[object\s(.*)\]$/)[1];

};

扩展一下,用于检测各种对象类型:

var is={

types: ["Array","Boolean","Date","Number","Object","RegExp","String","Window","HTMLDocument"]

};

for(var i= 0, c; c= is.types[i++ ];){

is[c]=(function(type){

return function(obj){

return Object.prototype.toString.call(obj)=="[object"+ type+"]";

}

)(c);

}

alert(is.Array([]));// true

alert(is.Date(new Date));// true

alert(is.RegExp(/reg/ig));// true

node.js 有哪些全局对象

全局对象与全局变量

global最根本的作用是作为全局变量的宿主。按照ECMAScript的定义,满足以下条件的变量是全局变量:

在最外层定义的变量;

全局对象的属性;

隐式定义的变量(未定义直接赋值的变量)。

当你定义一个全局变量时,这个变量同时也会成为全局对象的属性,反之亦然。需要注意的是,在Node.js中你不可能在最外层定义变量,因为所有用户代码都是属于当前模块的,而模块本身不是最外层上下文。

注意:永远使用var定义变量以避免引入全局变量,因为全局变量会污染命名空间,提高代码的耦合风险。

process

process是一个全局变量,即 global对象的属性。

它用于描述当前Node.js进程状态的对象,提供了一个与操作系统的简单接口。通常在你写本地命令行程序的时候,少不了要和它打交道。下面将会介绍process对象的一些最常用的成员方法。

process.argv是命令行参数数组,第一个元素是 node,第二个元素是脚本文件名,从第三个元素开始每个元素是一个运行参数。

console.log(process.argv);

将以上代码存储为argv.js,通过以下命令运行:

$ node argv.js 1991 name=byvoid--v"Carbo Kuo"

['node',

'/home/byvoid/argv.js',

'1991',

'name=byvoid',

'--v',

'Carbo Kuo' ]

process.stdout是标准输出流,通常我们使用的 console.log()向标准输出打印字符,而 process.stdout.write()函数提供了更底层的接口。

process.stdin是标准输入流,初始时它是被暂停的,要想从标准输入读取数据,你必须恢复流,并手动编写流的事件响应函数。

process.stdin.resume();

process.stdin.on('data', function(data){

process.stdout.write('read from console:'+ data.toString());

});

process.nextTick(callback)的功能是为事件循环设置一项任务,Node.js会在下次事件循环调响应时调用 callback。

初学者很可能不理解这个函数的作用,有什么任务不能在当下执行完,需要交给下次事件循环响应来做呢?

我们讨论过,Node.js适合I/O密集型的应用,而不是计算密集型的应用,因为一个Node.js进程只有一个线程,因此在任何时刻都只有一个事件在执行。

如果这个事件占用大量的CPU时间,执行事件循环中的下一个事件就需要等待很久,因此Node.js的一个编程原则就是尽量缩短每个事件的执行时间。process.nextTick()提供了一个这样的工具,可以把复杂的工作拆散,变成一个个较小的事件。

functiondoSomething(args, callback){

somethingComplicated(args);

callback();

}

doSomething(functiononEnd(){

compute();

});

我们假设compute()和somethingComplicated()是两个较为耗时的函数,以上的程序在调用

doSomething()时会先执行somethingComplicated(),然后立即调用回调函数,在 onEnd()中又会执行

compute()。下面用process.nextTick()改写上面的程序:

functiondoSomething(args, callback){

somethingComplicated(args);

process.nextTick(callback);

}

doSomething(functiononEnd(){

compute();

});

改写后的程序会把上面耗时的操作拆分为两个事件,减少每个事件的执行时间,提高事件响应速度。

注意:不要使用setTimeout(fn,0)代替process.nextTick(callback),前者比后者效率要低得多。

我们探讨了process对象常用的几个成员,除此之外process还展示了process.platform、 process.pid、process.execPath、process.memoryUsage()等方法,以及POSIX进程信号响应机制。

console

console用于提供控制台标准输出,它是由Internet Explorer的JScript引擎提供的调试工具,后来逐渐成为浏览器的事实标准。

Node.js沿用了这个标准,提供与习惯行为一致的 console对象,用于向标准输出流(stdout)或标准错误流(stderr)输出字符。 console.log():向标准输出流打印字符并以换行符结束。

console.log接受若干个参数,如果只有一个参数,则输出这个参数的字符串形式。如果有多个参数,则以类似于C语言 printf()命令的格式输出。

第一个参数是一个字符串,如果没有参数,只打印一个换行。

console.log('Hello world');

console.log('byvoid%diovyb');

console.log('byvoid%diovyb', 1991);

运行结果为:

Hello world

byvoid%diovyb

byvoid1991iovyb

console.error():与console.log()用法相同,只是向标准错误流输出。

console.trace():向标准错误流输出当前的调用栈。

console.trace();

运行结果为:

Trace:

at Object.<anonymous>(/home/byvoid/consoletrace.js:1:71)

at Module._compile(module.js:441:26)

at Object..js(module.js:459:10)

at Module.load(module.js:348:31)

at Function._load(module.js:308:12)

at Array.0(module.js:479:10)

at EventEmitter._tickCallback(node.js:192:40)

关于js中array对象的常用方法和JS Array的语法格式的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

charat characterierpython框架?SQL和python哪个难