获取属性

可以通过点(.)或方挂号([])运算符来获取属性的值。

对于点(.)来说,右侧必须是一个以属性名称命名的简单标识符。对于[]来说,方挂号内必须是一个计算结果为字符串的表达式。

var author = book.author;//得到book的'author'属性

var title = book['main title'];//得到book的'main title'

在ECMAScript 3中,点运算符后的标识符不能是保留字,比如,o.for或o.class是非法的;必须使用方挂号形式访问o['for']。

在ECMAScript 5中对此放宽限制。

在C/C++一些强类型语言中,对象只能拥有固定数目的属性,并且这些属性名称必须提前定义好。

由于javascript是弱类型语言,在任何对象中都可以创建任意数量的属性。

-----------------------------------------------------------------------------------------------------------------------------------

查询属性

查询一个不纯在的属性并不会报错,如果在对象o自身的属性或继承的属性中均未找到属性,返回undefined。

但是,如果对象不存在,那么试图查询这个不存在的对象的属性就会报错。null和undefined值都没有属性。

当然,给null和undined设置属性也会报类型错误。有一些属性是只读的,不能重新赋值。

book.author = 'abc';

-----------------------------------------------------------------------------------------------------------------------------------

删除属性

delete运算符可以删除对象的属性。delete只是断开属性和宿主对象的关联,而不会去操作属性中的属性

delete book.author;

delete book['main title'];

delete运算符只能删除自有属性,不能删除除继承属性。

---------------------------------------------------------------------------------------------------------------------------------------

检测属性

in运算符、hasOwnPreperty()和propertyIsEnumerable()方法来检测属性。

var o = {x:1};

'x' in o;//true

'y' in o;//flase

'toString' in o;//true

对象的hasOwnProperty()方法用来检测给定的名字是否是对象的自有属性。对于继承属性返回false

o.hasOwnProperty('x');//true

o.hasOwnProperty('y');//false

o.hasOwnProperty('toString');//false,toString是继承属性

对象的propertyIsEnumerable(),只有检测到是自有属性却这个属性的可枚举性为true时才返回true。

除了使用in,另一种更简单的方法是使用'!=='判断一个属性是否是undefined。

o.x!==undefined;//true

o.y!==undefined;//false

o.toString!==undefined;//true

JavaScript ---属性的更多相关文章

  1. (02)javascript属性

    私有属性(私有变量和私有方法) 实例属性(实例变量和实例方法) 静态属性(静态变量和静态方法) <!DOCTYPE html> <html lang="en"&g ...

  2. JavaScript 属性类型(数据属性 访问器属性)

    ECMA-2把对象定义为:“无序属性的集合,其属性可以包含基本值.对象或者函数.” 严格来说,这就相当于说对象是一组没有特定顺序的值.对象的属性或方法都有一个名字,而每个名字映射到一个值.我们可以把E ...

  3. JavaScript 属性类型(数据属性和访问器属性)

    数据属性 数据属性包含一个数据值的位置.在这个位置可以读取和写入值.数据属性有 4 个描述其行为的特性. [[Configurable]]:表示能否通过 delete 删除属性从而重新定义属性,能否修 ...

  4. gvim如何显示html属性代码提示? vim 如何显示 javascript属性及方法提示?

    gvim如何显示html属性代码 可以在vim中 显示 html, css, js等的属性/方法 提示: 一是: 在 ~/.vim/after/syntax/ 目录中 安装 css-color.vim ...

  5. 您是不是奇怪为什么 <script> 标签中没有 type="text/javascript" 属性?

    在 HTML5 中该属性不是必需的.JavaScript 是 HTML5 以及所有现代浏览器中的默认脚本语言!

  6. Javascript属性constructor/prototype的底层原理

    在Javascript语言中,constructor属性是专门为function而设计的,它存在于每个function的prototype属性中. 这个constructor保存了指向function ...

  7. JavaScript 属性描述符

    属性描述符(Property Descriptor)是 ES5 之后出现的概念,顾名思义,它用于描述属性应该是什么样,例如是否只读,能否枚举,能否可配置等.所有对象属性均可使用属性描述符来定义. 属性 ...

  8. javascript 属性的特性

    /* 属性的特性: 可以通过调用Object.getOwnPropertyDescriptor()可以获得某个对象特定属性的属性描述符, 从函数名字就可以看出, Object.getOwnProper ...

  9. JavaScript属性中的offsetLeft、offsetWidth、clientWidth、scrollLeft、scrollWidth、innerWidth

    1.offsetLeft和offsetTop 只读属性,返回当前元素与父辈元素之间的距离(不包括边框).其中父辈元素的取法是有门道的: (1).若父辈元素中有定位的元素,那么就返回距离当前元素最近的定 ...

随机推荐

  1. ubuntu 12.04 支持中文----完胜版

    原文地址 http://pobeta.com/ubuntu-sublime.html, /* sublime-imfix.c Use LD_PRELOAD to interpose some func ...

  2. 实验三 组合逻辑电路的VHDL设计

    一.实验目的 熟悉QuartusⅡ的VHDL文本设计过程,学习简单组合逻辑电路的设计.仿真和测试方法. 二.实验内容 1. 基本命题 完成2选1多路选择器的文本编辑输入(mux21a.vhd)和仿真测 ...

  3. [Java Web整合开发王者归来·刘京华] 1、 Java Web开发

      目录: 1.Web技术简介 2.动态网站与静态网站 3.Java Web开发模式 4.JavaScript简介 1.Web技术简介 PS: 最近还有更凶残的技术,即整个操作系统都是基于Web的,如 ...

  4. SQL——系统函数

    1) CASE CASE有两种使用形式:一种是简单的CASE函数,另一种是搜索型的CASE函数. [1]简单的 CASE 函数 Format: CASE input_expression WHEN w ...

  5. dpkg 被中断,您必须手工运行 sudo dpkg -configure -a 解决

    E: dpkg 被中断,您必须手工运行 sudo dpkg --configure -a 解决此问题. E: dpkg 被中断,您必须手工运行 sudo dpkg --configure -a 解决此 ...

  6. GeoHash核心原理解析

    http://www.cnblogs.com/LBSer/p/3310455.html 引子 机机是个好动又好学的孩子,平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西.某一天机机到北海公园游玩, ...

  7. Struts2学习笔记-基本结构

    一个普通的的web应用文件结构如下: 1. 最上层是应用名,区分大小写,在浏览器输入应用名的时候,必须与应用名的大小一样,例如:localhost:8080/HelloWorld 2. 在应用下,放有 ...

  8. log4qt的使用

    Log4Qt替换成新版本使其支持Qt5:https://github.com/devbean/log4qt/tree/master/src/log4qt 1. 解压log4qt到目标文件夹,如D:\Q ...

  9. ios之VFL的补充(二)

    [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[languageI ...

  10. nginx内置全局变量及含义

    名称        版本        说明(变量列表来源于文件 ngx_http_variables ) $args        1.0.8        请求中的参数; $binary_remo ...