美文网首页
js对象中取属性值(.)和[ ]的区别

js对象中取属性值(.)和[ ]的区别

作者: 前端守望者 | 来源:发表于2018-07-20 14:02 被阅读81次

今天在写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   [ ]运算符可以用纯数字作为属性名,点运算符不能

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

相关文章

  • js对象中取属性值(.)和[ ]的区别

    今天在写js的过程中遇到这么一个问题,取一个对象的属性值,通过obj.keys怎么都取不出来,但是用obj[key...

  • JavaScript高级程序设计读书笔记 第六章 OO

    JS中对象的定义:无序属性的集合,其属性值可以包含基本值,对象或者函数。我们可以把js的对象想象成散列表,无非就是...

  • 小红书阅读笔记~第六章(面向对象)

    JS中对象的定义:无序属性的集合,其属性值可以包含基本值,对象或者函数。我们可以把js的对象想象成散列表,无非就是...

  • JavaScript 面向对象的程序设计

    理解 JS 的对象 在 JS 中,对象被定义为——“无序属性的集合,其属性可以包含基本值、对象或函数。“ 我们可以...

  • js对象与jquery对象

    (一) 区别js对象不能使用jquery对象的方法和属性jquery对象不能使用dom对象的方法和属性 var ...

  • 2018-01-18

    精细化设置对象属性的四个特征 在js中一切皆对象。对象是属性无序的集合,属性由属性名和属性值组成,属性值也都是对象...

  • 1.原型和原型链-作用域和作用域链

    一、请谈谈原型和原型链 原型js中每个函数都有一个属性,prototype,这个属性的属性值是一个对象,这个对象被...

  • []的思考

    我们知道 中括号[] 可以取一个对象的属性值,而且中括号里面还能是表达式 问题来了,中括号可以取任何变量的属性值?...

  • JavaScript笔记(一)

    一、面向对象面向过程的区别 1、什么是js对象 js对象:属性和方法的集合,js所有数据都可以看成对象...

  • 03-第三章 函数、自定义属性、事件

    一、 变量与属性的区别 属性分节点属性 和js属性节点属性 :元素自带属性js属性:js中自定义的属性 当js属性...

网友评论

      本文标题:js对象中取属性值(.)和[ ]的区别

      本文链接:https://www.haomeiwen.com/subject/xxtxmftx.html