Javascript学习笔记之 对象篇(一) : 对象的使用和属性


Posted in Javascript onJune 24, 2014
false.toString(); // 'false'
[1, 2, 3].toString(); // '1,2,3'

function Foo(){}
Foo.bar = 1;
Foo.bar; // 1

一个经常容易被误解的就是数字常量不能视为对象,实际上数字常量仍然可以视为对象。这是因为 Javascript 解析器在解析点操作符时而将其视为浮点数特征而犯下的错误。

2.toString(); // raises SyntaxError

实际上,我们有很多方法可以使得数字常量表现为一个对象。

2..toString(); // the second point is correctly recognized
2 .toString(); // note the space left to the dot
(2).toString(); // 2 is evaluated first

对象作为数据类型

Javascript 中的对象可以当做哈希表使用,它们主要包含键与值的对应关系。
使用 {} 符号来创建一个简单的对象,这个新建的对象将从 Object.prototype 继承而来,并且不包含自己定义的属性。

var foo = {}; // a new empty object
// a new object with a 'test' property with value 12
var bar = {test: 12};

访问对象的属性

我们可以使用两种方式来访问 Javascript 的对象,分别是点操作符 . 和中括号操作符 [] 。

var foo = {name: 'kitten'}
foo.name; // kitten
foo['name']; // kitten

var get = 'name';
foo[get]; // kitten

foo.1234; // SyntaxError
foo['1234']; // works

两种操作符的效果几乎一样,唯一的不同是中括号操作符允许动态设置属性而且属性名可以有语法错误。(上例中的第三个情形已说明)

删除对象的属性

删除属性的唯一方法是使用 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 真正被删除。
这里要说明一点,delete 只能删除属性,并不能删除变量。所以我们在定义变量时一定要养成写 var 的好习惯,任何时候,变量一定要使用 var 关键字才能声明。因为如果不写 var,变量会被误认给全局对象创建了一个新属性。

Javascript学习笔记之 对象篇(一) : 对象的使用和属性

这个例子相当清楚给出了答案,a 为变量,而 b 只是一个全局对象的属性而已。

命名对象的属性

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

对象的属性可以用普通字符或字符串来命名。同样也是由于 Javascript 解析器的一个错误设计,上例中的第二种表示方法在 ECMAScript 5 中将会抛出一个错误。
错误的原因是因为 delete 是一个关键词,所以必须使用一个字符串常量来命名来适应老版的 Javascript 解析器。

Javascript 相关文章推荐
Prototype使用指南之enumerable.js
Jan 10 Javascript
jQuery使用手册之三 CSS操作
Mar 24 Javascript
js读取本地excel文档数据的代码
Nov 11 Javascript
input标签内容改变的触发事件介绍
Jun 18 Javascript
JavaScript实现强制重定向至HTTPS页面
Jun 10 Javascript
JavaScript中的toLocaleDateString()方法使用简介
Jun 12 Javascript
JS模拟键盘打字效果的方法
Aug 05 Javascript
ES6正则表达式的一些新功能总结
May 09 Javascript
Vue 去除路径中的#号
Apr 19 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
Aug 30 Javascript
JS监听滚动和id自动定位滚动
Dec 18 Javascript
vue实现侧边栏导航效果
Oct 21 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
Jun 23 #Javascript
jquery 为a标签绑定click事件示例代码
Jun 23 #Javascript
a标签click和href执行顺序探讨
Jun 23 #Javascript
jquery trigger伪造a标签的click事件取代window.open方法
Jun 23 #Javascript
javascript将浮点数转换成整数的三个方法
Jun 23 #Javascript
jquery用data方法获取某个元素上的事件
Jun 23 #Javascript
如何正确使用javascript 来进行我们的程序开发
Jun 23 #Javascript
You might like
php实现简单文件下载的方法
2015/01/30 PHP
使用Huagepage和PGO来提升PHP7的执行性能
2015/11/30 PHP
Smarty日期时间操作方法示例
2016/11/15 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
2012/03/14 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
js实现的点击div区域外隐藏div区域
2014/06/30 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
2015/08/05 Javascript
Vue.js实现简单ToDoList 前期准备(一)
2016/12/01 Javascript
Javascript中for循环语句的几种写法总结对比
2017/01/23 Javascript
基于JavaScript实现新增内容滚动播放效果附完整代码
2017/08/24 Javascript
在vue项目中,使用axios跨域处理
2018/03/07 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
微信小程序和H5页面间相互跳转代码实例
2019/09/19 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
[05:08]2014DOTA2国际邀请赛 Hao专访复仇的胜利很爽
2014/07/15 DOTA
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
详解Python迭代和迭代器
2016/03/28 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
用python实现刷点击率的示例代码
2019/02/21 Python
使用python绘制cdf的多种实现方法
2020/02/25 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
Python‘==‘ 及 ‘is‘相关原理解析
2020/09/05 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
英国床垫在线:Mattress Online
2016/12/07 全球购物
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
小学生美德少年事迹
2014/02/02 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
奖学金个人总结
2015/03/04 职场文书
酒店开业主持词
2015/07/02 职场文书
导游词之开封禹王台风景区
2019/12/02 职场文书