js数组竟然可以是字符串
第一次知道jS的数组下标可以是字符串 求大神告知Js与PHP或者是其他语言的区别 为什么可以是字符串做下标呢?
1、点号——成员运算符
var str = "abc";
str.substring( 1, 2 );
2、中括号——我也是成员运算符,中括号括起的字符为 key
str["substring"]( 1, 2 );
两者均是合法的访问成员形式,点号的形式约束必须是合法的标识符(数字、字母、下划线及美元符号$,且首字符不允许是数字),
因此,str.1 是不合法的。
但中括号的 key 则允许任意类型的值(甚至是对象,但需要注意的是最终会转换成字符串),如数字:
str[1] ===> 得到 'b'
或者用字符串:
str["substring"](1, 2) ===> 调用 substring 函数
而数组也是对象,因此支持中括号这种成员运算符。
[此贴子已经被作者于2016-11-16 15:58编辑过]