对象属性的使用

JavaScript中的所有变量都可以当做对象使用,除了null和undefined。

false.toString(); // 'false'
[1, 2, 3].toString(); // '1,2,3' function Foo(){}
Foo.bar = 1;
Foo.bar; // 1

字面值也可以作为对象使用,只不过需要变通方法:

2.toString(); // 出错:SyntaxError
2..toString(); // 第二个点号可以正常解析
2 .toString(); // 注意点号前面的空格
(2).toString(); // 2先被计算

对象作为数据类型

JavaScript的对象可以作为哈希表使用,主要用来保存命名的键与值的对应关系。

使用对象的字面语法-{}-可以创建一个简单的对象,该对象从Object.prototype继承下来,没有任何自定义属性。

var foo = {}; // 一个空对象

// 一个新对象,拥有一个值为12的自定义属性'test'
var bar = {test: 12};

访问属性

使用点操作符或者中括号操作符来访问属性:

var foo = {name: 'kitten'}
foo.name; // kitten
foo['name']; // kitten var get = 'name';
foo[get]; // kitten foo.1234; // SyntaxError
foo['1234']; // works

两种语法是等价的,但是中括号操作符在下面两种情况下依然有效:

-动态设置属性

-属性名不是一个有效的变量名(比如属性名中包含空格,或者属性名是JS的关键词)

删除属性

删除属性的唯一方法是使用delete操作符;设置属性为undefined或者null并不能真正的删除属性,而仅仅是移除了属性和值的关联。

var obj = {
bar: 1,
foo: 2,
baz: 3
};
obj.bar = undefined;
obj.foo = null;
delete obj.baz; for(var i in obj) {
if (obj.hasOwnProperty(i)) {
console.log(i, '' + obj[i]);
}
}

以上代码输出bar undefined和foo null,只有baz被真正的删除了,所以从结果中消失。

属性名的语法

var test = {
'case': 'I am a keyword so I must be notated as a string',
delete: 'I am a keyword too so me' // 出错:SyntaxError
};

对象的属性名可以使用字符串或者普通字符声明,但是由于 JavaScript解析器的设计,上面的第二种声明方式在ECMAScript 5之前会抛出SyntaxError的错误。

这个错误的原因是delete是JavaScript语言的一个关键词,因此为了在更低版本的JavaScript引擎下也能正常运行,必须使用字符串字面值声明方式。

JavaScript学习笔记(一)对象和属性的更多相关文章

  1. Javascript学习笔记:对象的属性类型

    在ECMAScript中有两种属性:数据属性和访问器属性 1.数据属性 configurable:表示能否通过delete删除属性从而重新定义属性:或者能否修改属性的特性:或者能否把属性修改为访问器属 ...

  2. JavaScript:学习笔记(8)——对象扩展运算符

    JavaScript:学习笔记(8)——扩展运算符 对象的扩展运算符 扩展运算符是三个点(...).用于取出参数对象的所有可遍历属性,然后拷贝到当前对象之中. 如上图所示,新建了一个对象a,然后通过扩 ...

  3. JavaScript学习笔记-JSON对象

    JSON 是一种用来序列化对象.数组.数值.字符串.布尔值和 null 的语法.它基于 JavaScript 语法,但是又有区别:一些 JavaScript 值不是 JSON,而某些 JSON 不是 ...

  4. JavaScript学习笔记——BOM_window对象

    javascript浏览器对象模型-windwo对象 BOM Browser Object Model window对象 是BOM中所有对象的核心. 一.属性 1.(位置类型-获得浏览器的位置) IE ...

  5. JavaScript学习笔记——3.对象

    JavaScript 对象 - 创建对象 1- var obj = new Object(); 2- var obj = {}; *例子:var person = {Name:"Hack&q ...

  6. JavaScript学习笔记之对象

    目录 1.自定义对象 2.Array 3.Boolean 4.Date 5.Math 6.Number 7.String 8.RegExp 9.Function 10.Event 在 JavaScri ...

  7. JavaScript学习笔记——DOM_document对象

    javascript-document对象详解 DOM document(html xml) object modledocument对象(DOM核心对象) 作用: 1.内容 innerHTML 2. ...

  8. JavaScript:学习笔记(10)——XMLHttpRequest对象

    JavaScript:学习笔记(10)——XMLHttpRequest对象 XHR对象 使用XMLHttpRequest (XHR)对象可以与服务器交互.您可以从URL获取数据,而无需让整个的页面刷新 ...

  9. Javascript学习笔记——操作浏览器对象

    Javascript学习笔记 目前尝试利用javascript去对于一个浏览器对象完成一系列的访问及修改, 浏览器是网页显示.运行的平台,常用的浏览器有IE.火狐(Firefox).谷歌(Chrome ...

  10. JavaScript:学习笔记(9)——Promise对象

    JavaScript:学习笔记(9)——Promise对象 引入Promise Primose是异步编程的一种解决方案,比传统的解决方案回调函数和事件更加合理和强大.如下面为基于回调函数的Ajax操作 ...

随机推荐

  1. JS 之 innerHTML

    定义和用法 innerHTML 属性用于设置或返回指定标签之间的 HTML 内容. 语法 Object.innerHTML = "HTML";// 设置 var html = Ob ...

  2. D - Specialized Four-Digit Numbers

    Description Find and list all four-digit numbers in decimal notation that have the property that the ...

  3. const的一些总结

    const的一些总结 采用const符号常量写出来的代码更容易维护,有些函数只读不写: 1 常变量: const 类型说明符 变量名 2 常引用: const 类型说明符 &变量名 3 常成员 ...

  4. apache AH01630: client denied by server configuration错误解决方法

    今天本来是想要在自己本地搭建一个wamp环境用来做一些代码的测试和框架的学习. 鉴于目前工作的时候用到了php5.5,所以就用了wamp-server V2.5版本,安装完成之后配置虚拟主机一直出现4 ...

  5. java学习:AWT组件和事件处理的笔记(1)--文本框上的ActionEvent事件

    学习处理事件时,必须很好的掌握事件源,监视器,处理事件的接口    1.事件源        能够产生java认可事件的对象都可称为事件源,也就是说事件源必须是对象    2.监视器        监 ...

  6. jquery 事件委托三种事件绑定方式.bind(),.live(),.delegate()

    http://www.ituring.com.cn/article/467# http://www.cnblogs.com/lvdabao/archive/2013/08/30/3290603.htm ...

  7. Counting square

    Problem Description There is a matrix of size R rows by C columns. Each element in the matrix is eit ...

  8. html类,id规范命名

    DIV+CSS的命名规则 SEO(搜索引擎优化)有很多工作要做,其中对代码的优化是一个很关键的步骤.为了更加符合SEO的规范,下面中部IT网将对目前流行的CSS+DIV的命名规则整理如下: 页头:he ...

  9. OpenStack开启sshd

    修改配置sshd的文件 1.      修改sshd配置文件 /etc/ssh/sshd_config 2.      将#PasswordAuthentication no的注释去掉,并将no改为y ...

  10. 北京西服定做_衬衫定制_关于我们_Dimoon TLR.

    北京西服定做_衬衫定制_关于我们_Dimoon TLR.