03月21, 2017

JavaScript Array-like

Array-like

所谓的Array-like,即类数组。其实并不是数组,但是可以像数组一样的进行访问,在这里,仅仅是写法上的一致。其实并不是数组。

对象(Object)

var a = {a: "a"};
var b = {"b": "b"};
console.log(a); //"a"
console.log(b); //"b"
  • 特殊情况不可以用的属性访问
var a = {0: "a"}; 
console.log(a.0); //Uncaught SyntaxError: Unexpected number
//竟然可以像一个数组进行访问
console.log(a[0]); // "a"
//为了以便区分,可以加上引号
console.log(a['0']) // "a"

No, the quotes do not make a difference (unless, as you noted, you want to use a key that’s not a valid JavaScript identifier).

可见,如果符合规范的定义key值,加引号和不加引号是没有区别的。如果你的key值中出现数字或者JavaScript中的关键字,可以通过加引号的方式访问obj['key']

引申

说到这里,我想引申一个东西,跟上面的对象理解(类数组)完全一致。就是JavaScript函数中的arguments参数。

arguments对象是所有JavaScript函数中的局部变量。通过arguments我们可以获取函数中的所有参数。

function getArgs(a, b) {
  console.log(arguments[0])
  console.log(arguments[1])  
}

getArgs(1, 2); // 1 2

通过上述代码,我们可以通过类似数组的方式进行参数的读取,判断等等。接下来的一篇文章将会探索arguments的真正类型以及含义。

本文链接:https://beacelee.com/post/javascript-array-like-arguments.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。