• javascript数组


    //下列数组的使用是否合法?
    var array = [];
    array[-1] = 2;
    array["b"] = 1;
    array[1,2] = 3;
    
    //下列两种情况要表达的意思是否一样?
    array["2"] = 2;
    array[2]  = 2;

    如果你已能为上述问题做出解答,那么可以忽略接下来我要讲的东西。

    javascript中的数组本质是什么?

      1、数组实例本质上是一个对象

    var myArr = [];
    console.log(typeof myArr);

    既然是个对象,那么就有相应的属性和方法,所以object自带的方法,数组实例也有。

      2、对象属性的访问方式

    访问对象的属性可以通过点操作符(.)或者中括号操作符([]),中括号操作符比点操作符功能强大的多,能用点操作符的地方都能用中括号操作符,反之不成立;如果你对于jsp中的EL表达式很熟悉的话,下面的东西就很容易理解。

    //点操作符右边的属性名必须是合法的标识名
    var obj = {};
    obj.123 = 2;    //不合法
    
    //中括号中的属性名可以不是合法的标识名,里面还可以放变量
    obj["123"] = 2; //合法
    
    var name = "anonymous";
    obj[name] = "hello";  // 相当于obj["anonymous"] = "hello";

      3、“数组的下标必须是大于等于0并小于232-1 的整数,如果使用的数字过大,或者使用了负数、浮点数(或布尔值,对象及其他值),javascript会将它转化成一个字符串,用生成的字符串作为对象属性的名字,而不是数组的下标。” ------------这是摘自《javascript权威指南》中的一句话。

      其实不管是不是整数,在数组内部,都是以属性的形式存储的。这也是数组为什么能用于for/in 循环(可以列出一个对象或者数组的所有属性)的原因

    var arr = [];
    arr.push("bb");
    console.log(arr.hasOwnProperty("0")); // 输出true
    
    //数组的for/in循环遍历
    var array1 = [1];
    array1["aa"]= 2;
    for(var index in array1){
      console.log(index);   //输出0,aa; 从这里也可以看出用for/in输出数组元素的弊端,把数组属性全部都输出了。
    }

      4、给数组添加属性,对数组length的影响。

    var arr = [1,2];
    arr["bb"] = 3;
    console.log(arr.length); //输出2
  • 相关阅读:
    简单的验证码;在一个数组中随即打印出4个不重复的字母
    数据类型
    java语法基础
    mac 开机运行脚本
    【mac】 搭建java环境
    mac 复制文件到NTFS格式的移动硬盘
    JAVA学习日报 8.19
    JAVA学习日报 8.20
    (VI)事务:Spring 事务管理
    (VI)事务:Spring 事务细节
  • 原文地址:https://www.cnblogs.com/liuyonglong/p/3647243.html
Copyright © 2020-2023  润新知