你所不知道的javascript数组特性

时间:2021-08-05 08:38:03

工作中,我们经常使用js的数组,但是,下面的东西你见过吗?

1,文本下标:

 var  a=[];
a[-1]=1;

你想过数组的下标为负数的情况吗?我们对数组的下标规定从0开始。但是上面那么写也还是可以的。不过,请看:

 console.log(a.length); //
console.log(a[-1]); //
console.log(a["-1"]);//1
4 a.hasOwnProperty(-1); //true

这个说明此处还是以对象的属性存储的。

2,二维数组:

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

js本身是不支持二维数组的,所以上面的length长度为2,它的内部实现是将二维数组小标当成逗号表达式,所以只有最有一个值有效。

如果你非要实现二维数组,那么也是可以的:

 var  a = [1];
var b=[];
b[0]=a;
console.log(b[0][0]); //

3,对象下标:

当数组的下标为对象时,js会试图将它转化为数值,如果不行,则把它转化为字符串。

 var   a = [];
var b ={c:1};
a[b]=2;
console.log(a[b]);//

开心一刻:

你所不知道的javascript数组特性

你所不知道的javascript数组特性的更多相关文章

  1. 你所不知道的JavaScript数组

    相信每一个 javascript 学习者,都会去了解 JS 的各种基本数据类型,数组就是数据的组合,这是一个很基本也十分简单的概念,他的内容没多少,学好它也不是件难事情.但是本文着重要介绍的并不是我们 ...

  2. js值----你所不知道的JavaScript系列(6)

    1.数组 在 JavaScript 中,数组可以容纳任何类型的值,可以是字符串.数字.对象(object),甚至是其他数组(多维数组就是通过这种方式来实现的) .----<你所不知道的JavaS ...

  3. js类型----你所不知道的JavaScript系列(5)

    ECMAScirpt 变量有两种不同的数据类型:基本类型,引用类型.也有其他的叫法,比如原始类型和对象类型等. 1.内置类型 JavaScript 有七种内置类型: • 空值(null) • 未定义( ...

  4. 闭包----你所不知道的JavaScript系列(4)

    一.闭包是什么? · 闭包就是可以使得函数外部的对象能够获取函数内部的信息. · 闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. · 闭包就 ...

  5. 提升----你所不知道的JavaScript系列(3)

    很多编程语言在执行的时候都是自上而下执行,但实际上这种想法在JavaScript中并不完全正确, 有一种特殊情况会导致这个假设是错误的.来看看下面的代码, a = 2; var a; console. ...

  6. let和const----你所不知道的JavaScript系列(2)

    let 众所周知,在ES6之前,声明变量的关键字就只有var.var 声明变量要么是全局的,要么是函数级的,而无法是块级的. var a=1; console.log(a); console.log( ...

  7. LHS 和 RHS----你所不知道的JavaScript系列(1)

      变量的赋值操作会执行两个动作, 首先编译器会在当前作用域中声明一个变量(如果之前没有声明过), 然后在运行时引擎会在作用域中查找该变量, 如果能够找到就会对它赋值.----<你所不知道的Ja ...

  8. JavaScript中你所不知道的Object(二)--Function篇

    上一篇(JavaScript中你所不知道的Object(一))说到,Object对象有大量的内部属性,而其中多数和外部属性的操作有关.最后留了个悬念,就是Boolean.Date.Number.Str ...

  9. 你所不知道的 CSS 阴影技巧与细节 滚动视差?CSS 不在话下 神奇的选择器 &colon;focus-within 当角色转换为面试官之后 NPOI 教程 - 3&period;2 打印相关设置 前端XSS相关整理 委托入门案例

    你所不知道的 CSS 阴影技巧与细节   关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 filter:drop-shadow 详解及奇技淫巧,介绍了一些关于 box-shadow  ...

随机推荐

  1. GPS部标平台的架构设计&lpar;二&rpar; 可扩展性设计

    在设计的前夕,设计人员喜欢把领导对未来业务的期望带入到设计目标当中,比如当前业务也不过是接入几千辆车,未来业务增长也不过几万台,但领导很多激情,强势要求二期平台的接入能力要达到20万台,这个要求带入到 ...

  2. unity3d 游戏插件 溶解特效插件 - Dissolve Shader

    unity3d 游戏插件 溶解特效插件 - Dissolve Shader   链接: https://pan.baidu.com/s/1hr7w39U 密码: 3ed2

  3. nginx root &amp&semi;&amp&semi; alias 文件路径配置

    文章摘自:http://www.ttlsa.com/nginx/nginx-root_alias-file-path-configuration/ nginx指定文件路径有两种方式root和alias ...

  4. 【HTML】Intermediate1:Span&amp&semi;Div

    1.HTML is all bout applying meaning to content. The span & div tags apply no meaning at all=mean ...

  5. SecureCRT 历史版本下载

    最近在使用SecureCRT时,存在网络卡顿现象,然而.同事的SecureCRT工具却一点都不卡,我的SecureCRT是比较老的版本6,同事使用的是版本7,所以就更换下自己的SecureCRT版本. ...

  6. HTML5-用canvas画布rotate字体旋转(中国象棋棋谱)。

    一开始我们老师安排我做这个作业,在这个作业我遇到了一个很重大的问题就是,文字旋转这么旋转,我查了很多资料. 1发现绘画正方形,使他正方形中心原点旋转非常容易理解.(我相信这个很多人看一下都会懂,) 1 ...

  7. kafka入门2:java 创建及删除 topic

    1.pom <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.1 ...

  8. android sdk更新代理设置

    mirrors.neusoft.edu.cn 80

  9. 在iOS 7中使用storyboard(part 1)

    原文:Storyboards Tutorial in iOS 7: Part 1        感谢翻译小组成员heartasice热心翻译.如果您有不错的原创或译文,欢迎提交给我们,更欢迎其他朋友加 ...

  10. SpringMVC-Spring-Hibernate项目搭建之一-- 搭建maven 项目 &amp&semi; servlet的demo

    一. 搭建maven项目  1. 新建maven项目,选择maven Project --> Next 2. 勾选 Create a simple project --> Next 3. ...