面试题一:
打印结果:
结果说明,修改数组的值的过程中,下标index如果是数字,那么,就是正常的数组赋值。
如果是非数字,那么会将其转换为字符串,其实数组也是对象,那么,非数字就相当于给对象arr的key键定义的value值。
通过上述方式先为数组赋值,然后再通过以下方式取值:
由打印的结果可以看出,数组在取值时索引是数字,按照数组取值方式获取。
如果索引位置是非数字,会将其转换成字符串,通过对象的方式取值。
所以题目中的arr['1']会转换成arr[1],最终获取到的值为2。
可以看出,对象赋值的时候,如果key值不是字符串,会将其转换成字符串。
通过上述方式先为对象赋值,然后再通过以下方式取值:
由打印的结果可以看出,对象在取值时,如果当前key值不是字符串,会将其转换成字符串,再取值。
所以题目中的arr[1]会转换成arr['1'],最终获取到的值为2。
对象的下标如果不是字符串,会将其先转换成字符串,再去求值。数组的下标如果不是数字,先将其尝试转成数字去取值;如果转不成数字,则会利用数组也是对象的特点,将其转换成字符串,再去取值。
以上就是JavaScript面试数组index和对象key问题详解的详细内容,更多关于JavaScript数组index对象key的资料请关注脚本之家其它相关文章!