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 相关文章推荐
二叉树的非递归后序遍历算法实例详解
Feb 07 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
Feb 13 Javascript
node.js中的favicon.ico请求问题处理
Dec 15 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
Feb 13 Javascript
JS上传图片前实现图片预览效果的方法
Mar 02 Javascript
Ajax清除浏览器js、css、图片缓存的方法
Aug 06 Javascript
AngularJS  双向数据绑定详解简单实例
Oct 20 Javascript
jQ处理xml文件和xml字符串的方法(详解)
Nov 22 Javascript
JavaScript结合HTML DOM实现联动菜单
Apr 05 Javascript
vue中路由参数传递可能会遇到的坑
Dec 07 Javascript
vue解决弹出蒙层滑动穿透问题的方法
Sep 22 Javascript
vue 组件简介
Jul 31 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
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
eval与window.eval的差别分析
2011/03/17 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
jquery.validate使用时遇到的问题
2015/05/25 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
jquery操作select元素和option的实例代码
2016/02/03 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成"...")
2016/11/28 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
2016/12/22 Javascript
全面总结Javascript对数组对象的各种操作
2017/01/22 Javascript
搭建简单的nodejs http服务器详解
2017/03/09 NodeJs
详解如何用webpack打包一个网站应用项目
2017/07/12 Javascript
Vue计算属性的使用
2017/08/04 Javascript
在node环境下parse Smarty模板的使用示例代码
2019/11/15 Javascript
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
2020/03/02 Javascript
[01:13:59]LGD vs Mineski Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
用python实现简单EXCEL数据统计的实例
2017/01/24 Python
Python 安装setuptools和pip工具操作方法(必看)
2017/05/22 Python
Python语言描述机器学习之Logistic回归算法
2017/12/21 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
python实现寻找最长回文子序列的方法
2018/06/02 Python
django连接mysql配置方法总结(推荐)
2018/08/18 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
pygame实现俄罗斯方块游戏(AI篇2)
2019/10/29 Python
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
试用期自我鉴定范文
2014/03/20 职场文书
学校群众路线专项整治方案
2014/10/31 职场文书
优秀护士事迹材料
2014/12/25 职场文书
保证书格式
2015/01/16 职场文书
2015年体育教学工作总结
2015/05/20 职场文书
电影圆明园观后感
2015/06/03 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
导游词之河北野三坡
2019/12/11 职场文书
浅谈python数据类型及其操作
2021/05/25 Python