js操作对象属性用点和用中括号有啥不同?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js操作对象属性用点和用中括号有啥不同?相关的知识,希望对你有一定的参考价值。

参考技术A

一、功能不同

1、用点:表示定义一个对象,大部分情况下要有成对的属性和值,或是函数。

2、用中括号:表示一个数组,也可以理解为一个数组对象。 

二、语法不同

1、用点: var LangShen = "Name":"Langshen","AGE":"28"。langShen.Name。在JSON数据结构、写函数组的时候中经常用。

2、用中括号:var LangShen = [ "Name","LangShen","AGE","28" ];每个值或函数,都是独立的,多个值之间只用,(逗号)隔开,因为是数组对象。


三、访问方式不同

1、用点:对象,访问时,用.(点)来层层访问。

2、用中括号:访问时,也是和数组一样,alert( LangShen[0] ); 


参考资料来源:百度百科-javascript

前端js开发浏览器兼容性基本原则

  1. 标签自定义属性,通过getAttribute和setAttribute访问,而不要用点成员的方式

  2. 表单中增加表单项,不要用字符串拼接成html的方式。要通过dom操作

  3. 在主流浏览器中换行符是一个文本节点,而老ie会忽略掉

  4. 判断对象的一个成员(属性或方法)是否存在,可以用 "成员名" in 对象的方式

  5. if条件(括号内)的代码出现异常时,并不影响程序继续运行,相当于返回false

  6. 光标样式cursor=hand只有IE支持,建议使用cursor=pointer

  7. 表格行tr的默认样式是table-row不是block,如果不知道是什么也可以设置为空

  8. 老ie不支持string.trim(),老ie不支持string.startWith()

  9. iframe的src属性不要写#否则非IE会出现当前页面嵌套当前页面。

  10. iframe中的页面,提交之后,父层可能无法获取到子页面中的对象

  11. 通过索引获取数组元素要用中括号[],不要用小括号(),否则非IE浏览器提示找不到此方法。比如rows[0]获取表格第一行

  12. 删除本节点IE使用node.removeNode(true)而主流方法只能是通过父节点删除子节点node.parentNode.removeChild(node)

  13. form对象在执行submit后的代码不能有alert、return、close(关闭窗口或页面)等操作,某些版本IE会导致不会执行提交动作。

时间仓促没有整理出代码实例,以后有时间再补上。

以上是关于js操作对象属性用点和用中括号有啥不同?的主要内容,如果未能解决你的问题,请参考以下文章

JS中,对象的访问

js对象属性 通过点(.) 和 方括号([]) 的不同之处

js中new创建对象时带括号和不带括号有啥区别

js对象中属性调用.和[] 两种方式的区别

js对象属性 通过点(.) 和 方括号([]) 的不同之处

js绑定事件函数带括号和不带括号执行效果有啥不同