JavaScript创建数组和检测是否是数组的一些方法

1.创建数组的基本方式:

第一种:

 var colors = new Array();

如:

var colors = new Array(20); //预先知道

数组要保存的项目数量var colors = new Array(“red”,“blue”); //直接向阵列构造函数传递参数

当然,也可以省略新操作符,如:

var colors = Array(20); //预先知道

数组要保存的项目数量var colors = Array(“red”,“blue”); //直接向阵列构造函数传递参数

第二种:

使用字面量表示法,字面量由一对包含数组项的方括号表示,多个数组项之间以逗号隔开,如

var colors = [“red”,“blue”]; //创意建一个包含两个字符串的数组

var names = []; //创建一个空数组

2.如何确定某个对象是不是数组?

1.使用的的instanceof操作符

		<SCRIPT> 
            var a = new Array(); 
            var b =“j”; 
            / *使用instanceof用* / 
            函数myfunction(kt){ 
            如果(kt instanceof Array){ 
                的console.log(“是一个数组
            }其他{ 
                的console.log(“不是一个数组!”); 
            } 
            } 
            MyFunction的(一); 
            MyFunction的的(b)中中;  
        </ SCRIPT>

输出如下图:


的instanceof操作符的问题在于,它假定只有一个全局执行环境,如果网页中包含多个框架,那实际上就存在两个以上不同的全局执行环境,从而存在两个以上不同版本的阵列构造函数。如果你从一个框架向另一个框架传入一个数组,那么传入的数组在第二个框架中原生创建的数组分别具有各自不同的构造函数。那么判断一个对象是否为数组,就会用当前的Aarry构造函数做比较,就会把另一个框架中原本是数组的对象与当前框架的数组构造函数对比,那当然就会告诉你不是数组了。

2.Array.isArray()

为了解决这个问题,ECMAScript5新增了Array.isArray()这个方法这个方法的目的最终确定某个值到底是不是数组,而不管它是在哪个全局执行环境中创建的使用方法如下。:

   / *使用Array.isArray()* /
            函数myfunction2(kt){
                if(Array.isArray(kt)){
                    的console.log( “是一个数组!”);
                } else {
                    的console.log( “不是一个数组!”);
                } 
            }

3.typeof

使用typeof判断数据类型,只能区分基本数据类型,如:string,number,boolean,object,undefined,而对于null,array,object使用typeof都统一返回对象

4.tostring(对象原生的的toString方法)

完整代码

<!DOCTYPE html>
<HTML>

    <HEAD>
        <meta charset =“UTF-8”>
        <TITLE> </ TITLE>
        <SCRIPT>
            var a = new Array();
            var b =“j”;
            / *使的instanceof用* /
            函数myfunction(kt){
                如果(kt instanceof Array){
                    的console.log( “是一个数组!”);
                } else {
                    的console.log( “不是一个数组!”);
                }
            }
            MyFunction的(一);
            MyFunction的(b)中;
            / *使用Array.isArray()* /
            函数myfunction2(kt){
                if(Array.isArray(kt)){
                    的console.log( “是一个数组!”);
                } else {
                    的console.log( “不是一个数组!”);
                }
            }
            myfunction2(一);
            myfunction2(b)中;
            / *使用的toString * /
            function myfunction3(value){
                console.log(+ Object.prototype.toString.call(value)==“[object Array]”);
            }
            myfunction3(一);
            myfunction3(b)中;
            / *使用typeof运算* /
            var n = null;
            console.log(typeof a);
            console.log(typeof n);
            console.log(typeof b);
        </ SCRIPT> 
    </ HEAD> 

    <BODY> 
    </ BODY> 

</ HTML>

如下图:



 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值