zoukankan      html  css  js  c++  java
  • 建议12:不拘泥于数字下标

      数组下标默认为大于或等于0的整数,不过JavaScript允许数组下标可以为任意表达式甚至为任意类型数据.但是如果该数组的下标都不是为大于或等于0的整数,那么求它的长度length为0

    (1) 文本下标

    var a = []
    a[-1] =1
    console.log(a[-1]);    //1
    console.log(a['-1']);  //1
    console.log(a.length); //0
    a[true] = 1
    console.log(a[true]);  //1
    console.log(a[1]);     //undefined 视为对象属性看待,没有转换为1
    console.log(a.length); //0
    
    a["张三"] = 1 //以文本下标来存储元素的值
    console.log(a["张三"]); //1  快速定位检索

    (2) 二维数组下标

    var a= []
    a[0,0] = 1
    a[0,1] = 2
    a[1,0] = 3
    a[1,1] = 4
    console.log(a.length);   //2
    console.log(a[0]);        //3
    console.log(a[1]);        //4

    (3) 对象下标

      对象也可以作为数组下标.JavaScript会试图把对象转换为数值,如果不行,就把他转换为字符串,然后以文本下标形式进行操作.

    var a = []                //数组直接量
    var b = function(){       //函数直接量
      return 2
    }
    a[b] = 1                  //把对象作为数组下标
    console.log(a.length);    //长度为0
    console.log(a[b]);        //1
    // 可以这样读取元素
    var s = b.toString()      //获取对象的字符串      
    console.log(a[s]);        //1 利用文本下标读取元素的值
    console.log(a.length);
    // 还可以这样设计下标
    a[b()] = 1                //在下标处调用函数,返回值为2
    console.log(a.length)     // 返回值为2,所以相当于a[2] = 1,根据规则length可以求出
    console.log(a[2]);        //因此可以用2来读取该元素值
  • 相关阅读:
    highcharts的表名
    highcharts的引用
    Factory 模式
    PHP中interface与 implements 关键字
    PHP中为位运算符(几乎很少用)
    &,引用复制@,忽略错误提示
    TP中手动加载类库
    TP框架自动加载优先级
    交换机和路由器
    Ucenter,Discuz
  • 原文地址:https://www.cnblogs.com/chorkiu/p/12095147.html
Copyright © 2011-2022 走看看