美文网首页
基础语法-对象

基础语法-对象

作者: syp_xp | 来源:发表于2017-05-03 09:56 被阅读7次

JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。

var xiaoming = {
    name: '小明',
    birth: 1990,
    school: 'No.1 Middle School',
    height: 1.70,
    weight: 65,
    score: null
};

JavaScript用一个{...}表示一个对象,键值对以xxx: xxx形式申明,用,隔开。注意,最后一个键值对不需要在末尾加,

访问属性是通过.操作符完成的,但这要求属性名必须是一个有效的变量名。如果属性名包含特殊字符,就必须用''括起来

var xiaohong = {
    name: '小红',
    'middle-school': 'No.1 Middle School'
};

xiaohong的属性名middle-school不是一个有效的变量,就需要用''括起来。访问这个属性也无法使用.操作符,必须用['xxx']来访问

如果访问一个不存在的属性不报错,而是返回undefined:

var xiaoming = {
    name: '小明'
};
xiaoming.age; // undefined

由于JavaScript的对象是动态类型,你可以自由地给一个对象添加或删除属性:

var xiaoming = {
    name: '小明'
};
xiaoming.age; // undefined
xiaoming.age = 18; // 新增一个age属性
xiaoming.age; // 18
delete xiaoming.age; // 删除age属性
xiaoming.age; // undefined
delete xiaoming['name']; // 删除name属性
xiaoming.name; // undefined
delete xiaoming.school; // 删除一个不存在的school属性也不会报错

如果我们要检测对象是否拥有某一属性,可以用in操作符:

var xiaoming = {
    name: '小明',
    birth: 1990,
    school: 'No.1 Middle School',
    height: 1.70,
    weight: 65,
    score: null
};
'name' in xiaoming; // true
'grade' in xiaoming; // false

不过要小心,如果in判断一个属性存在,这个属性不一定是xiaoming的,它可能是xiaoming继承得到的:

'toString' in xiaoming; // true

因为toString定义在object对象中,而所有对象最终都会在原型链上指向object,所以xiaoming也拥有toString属性。

要判断一个属性是否是xiaoming自身拥有的,而不是继承得到的,可以用hasOwnProperty()方法

var xiaoming = {
    name: '小明'
};
xiaoming.hasOwnProperty('name'); // true
xiaoming.hasOwnProperty('toString'); // false

相关文章

  • 基础语法-对象

    JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。 JavaScript用一个{...}表示...

  • java学习笔记第一天

    java基础语法 java基础语法 对象:对象是类的一个实例,有状态和行为。 类:类是一个模板,它描述一类对象的行...

  • 深入php面向对象、模式与实践

    1 语法 1.1 基础语法 clone需要操作原对象,但又不想影响原对象. $K_back = clone $K;...

  • 你不知道的JavaScript(三)|this和对象原型

    对象语法对象的文字语法大概是这样: 构造形式大概是这样: 类型对象是JavaScript的基础。在JavaScri...

  • Python从入门到精通

    Python语法的三个阶段 Python基础语法函数是编程 Python进阶语法面向对象编程 Python高级语法...

  • 2017-07-03

    0、基础语法 Javascript基础语法包括:变量定义、数据类型、循环、选择、内置对象等。 数据类型有strin...

  • iOS开发初学者学习路线

    基础C语言基本语法、Objective-C基本语法面向对象特性(类、对象、继承、多态、动态类型、动态绑定)协议(P...

  • day26-web前端

    1 基础语法(对象) 1.1什么是对象 对象-和python中的对象一样,拥有对象属性和对象方法 1.2创建对象 ...

  • 笔记:JS周报

    总览: 基础语法 变量与运算符 对象与函数 DOM 基础语法: web中的三种语言, HTML 定义了网页的内容;...

  • Dom

    JS的组成 ECMAScript js的基础语法 DOM 文档对象模型 BOM ...

网友评论

      本文标题:基础语法-对象

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