原文地址:https://www.jianshu.com/p/6a76530e4f8f

今天在写js的过程中遇到这么一个问题,取一个对象的属性值,通过obj.keys怎么都取不出来,但是用obj[keys]就可以。(这个是模拟的数据)

后来通过查资料明白,我这里data.water输出undefined,是因为object使用(.)获取属性值时,这里的water不是使用的变量water,而是直接去data对象中寻找名为water的key,没有找到,所以报undefined。

区别:

相同点:都可以获取到obj的属性值

不同点:

1 [ ]运算符可以使用字符串变量的内容作为属性名,点运算符不能

2 [ ]运算符可以用纯数字作为属性名,点运算符不能

3 [ ]运算符可以用js关键字和保留字作为属性名,点运算符不能

eg:

1 [ ]运算符可以使用字符串变量的内容作为属性名,点运算符不能

这里由于变量的var声明的变量会导致变量提升,所以会报undefined

2   [ ]运算符可以用纯数字作为属性名,点运算符不能

总结:对于一般的常量就使用(.)运算符,对于其他的使用[ ]运算符。

最新文章

  1. 用flex做垂直居中
  2. html初始化页面和a标签无下划线
  3. Spring之IoC总结帖
  4. hdu4888 Redraw Beautiful Drawings 最大流+判环
  5. JS设置CSS样式的几种方式【转】
  6. Linux学习笔记(2)-用户和用户组
  7. ThinkPHP中URL解析原理,以及URL路由使用教程!
  8. linux安装ruby ruby-devel rubygems bundler
  9. PHP中的session会话创建打印释放销毁;
  10. Maven与Eclipse使用中遇到的问题解决之道
  11. geotrellis使用(三十四)矢量瓦片技术研究——矢栅一体化
  12. 理解css伪类和伪元素
  13. 剑指Offer——巧妙使用sort(List<T>,Comparator<? super T>)比较器
  14. mybatis源码之PreparedStatementHandler
  15. java图片上传及图片回显1
  16. 中文分词算法工具hanlp源码解析
  17. Ubuntu 安装 OpenMPI
  18. Atitit 快速开发的推荐技术标准化 规范 大原则
  19. java作用域public ,private ,protected 及不写时的区别
  20. Yahoo!团队经验:网站性能优化的34条黄金法则

热门文章

  1. main process exited, code=exited, status=203/EXEC
  2. Ubuntu中wine程序安装windows软件中文乱码如何解决
  3. SAMBA配置文件详解
  4. 【VNCserver】Centos7.4安装VNC连接华为云或亚马逊云
  5. Spring Cloud 手记
  6. JVM&G1 GC 学习笔记(一)
  7. 用Java的大整数类BigInteger来实现大整数的一些运算
  8. DFS 算法模板
  9. 一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系
  10. javascript学习5、JS面向对象