• 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
  • 相关阅读:
    Linux下干净卸载mysql详解
    服务器重启后 django无法连接mysql数据库的解决方法
    团队排表系统V3.0最佳实践及使用说明
    nginx配置部署多个单页应用 踩坑
    前端项目首屏加速 gzip打包 路由懒加载 cdn资源优化
    JS实现手动将String转换为utf8格式的arraybuffer
    微信小程序Component组件调用回调函数this指向不是本页面
    linux系统后台运行python, 关闭shell后不会中断
    pycharm连接数据库失败
    react添加onScroll事件踩坑
  • 原文地址:https://www.cnblogs.com/liuyonglong/p/3647243.html
Copyright © 2020-2023  润新知