初涉JavaScript模式 (3) : 字面量
什么是字面量?
在编程语言中,字面量是一种表示值的记法。例如,"Hello, World!" 在许多语言中都表示一个字符串字面量(string literal ),JavaScript也不例外。比如举几个JavaScript字面量的例子,如5、true、false和null,它们分别表示一个整数、两个布尔值和一个空对象。
咋一看,可能很绕,字面量很难下定义,其实以我的理解就是一眼能理解的量就是字面量。
对象字面量
对象字面量是一个名值对列表,每个名值对之间用逗号分隔,并用一个大括号括起。各名值对表示对象的一个属性,名和值这两部分之间用一个冒号分隔。实例如下:
第一种
```javascript
var wr = {}; //define blank object
wr.name = "WeiRan"
wr.age = 21;
wr.sex = "male"
```
第二种
```javascript
var wr = {name : "WeiRan", age : 21, sex : "male"};
```
ps1 : 在注释中我注释了 define blank object 这其实是不准确的,在JavaScript中是没有任何对象是空对象的,即使是{}这种方式也是继承了部分Object.prototype的属性和方法
ps2 : 在后面的构造方法中也有类似的问题,this = {} this所指空对象就不在是Object.prototype,详细请往下看
ps3 : 前面我在全局变量的删除上使用了delete操作符,而相同的对象的属性也可以通过delete去删除
ps4 : 不要在最后一个属性后添加逗号(,) ,在IE浏览器下会产生错误,当时我写Tree组件的时候,这个Bug找了N久
最后1P 不要忘记结束大括号右边的(;)
数组字面量
数组字面量的表现形式和对象字面量类似,代码如下
```javascript
var a = [1, 2, 3];
```
数组字面量表示法(Array literal notation) 并没有太多的内容:它只是一个逗号分隔的元素列表,并且整个列表包装在方括号中。可以给数组字面量指定任意类型的值,包括对象或则其他数组。数组字面量语法是非常简单、明确、并且优美的。
正则表达式字面量
JavaScript中的正则表达式也是对象,所以我们也可以通过字面量的方式来创建正则表达式,实例如下:
```javascript
var rep = /\\/gm; //正则表达式字面量
```
如上代码所示:正则表达式字面量表示法语法清晰,短小,所以创建正则表达式的时候应优先考虑字面量表示法。
关于详细正则表达式的语法,可以去阅读 正则表达式
后记:
我所列出的字面量是比较容易混淆的,至于字符串、数值、布尔值。。。我就不一一介绍了。(偷个懒)
本来准备把字面量和构造函数放一起,但是想了想不太合适,构造函数展开的点比较多,放在一起会很乱,所以还是拆了出来
如有错误,望指正,共同进步!
初涉JavaScript模式 (3) : 字面量的更多相关文章
- JavaScript模式:字面量和构造函数
本篇主要讨论了通过字面量以构造对象的方法,比如对象.数组以及正则表达式等字面量的构造方法,同时还讨论了与类似Object()和Array()等内置构造函数相比,为什么基于字面量表示法是更为可取. 对象 ...
- javascript中对象字面量的理解
javascript中对象字面量与数组字面量 第一部分 我们知道JavaScript中的数据类型有基本数据类型和引用类型,其中Object类型就是非常常用的类型.那么如果创建一个Object类型的实例 ...
- 初涉JavaScript模式系列 阶段总结及规划
总结 不知不觉写初涉JavaScript模式系列已经半个月了,没想到把一个个小点进行放大,竟然可以发现这么多东西. 期间生怕对JS的理解不到位而误导各位,读了很多书(个人感觉JS是最难的oo语言),也 ...
- 初涉JavaScript模式 (11) : 模块模式
引子 这篇算是对第9篇中内容的发散和补充,当时我只是把模块模式中的一些内容简单的归为函数篇中去,在北川的提醒下,我才发觉这是非常不严谨的,于是我把这些内容拎出来,这就是这篇的由来. 什么是模块模式 在 ...
- 初涉JavaScript模式 (7) : 原型模式 【三】
组合使用构造函数模式和原型模式 上篇,我们提到了原型模式的缺点,就是每个实例不能拥有自己的属性,因为纯原型模式所有的属性都是公开给每个实例的,故我们可以组合使用构造函数模式和原型模式.构造函数用来定义 ...
- 初涉JavaScript模式 (6) : 原型模式 【二】
原型与in操作符 有两种方式使用in操作符:单独使用和在for-in循环中使用. 在单独使用时,in操作符会遍历实例公开(可枚举)的属性,如果找到该指定属性则返回true,无论该指定属性是存在与实例中 ...
- javascript中对象字面量与数组字面量
第一部分 我们知道JavaScript中的数据类型有基本数据类型和引用类型,其中Object类型就是非常常用的类型.那么如果创建一个Object类型的实例呢?下面我介绍两种方法: 第一:构造函数法. ...
- JavaScript变量和字面量
一.什么是变量? 首先了解一下什么是内存:内存就是保存程序在运行过程中,所需要用到的数据8bit(比特是表示信息的最小单位). 8bit=1byte 1024byte=1MB 1024MB=1GB 1 ...
- 初涉JavaScript模式 (13) : 代码复用 【上】
引子 博客断了一段时间,不是不写,一是没时间,二是觉得自己沉淀不够,经过一段时间的学习和实战,今天来总结下一个老生常谈的东西: 代码复用. 为何复用 JS门槛低,故很多人以为写几个特效就会JS,其实真 ...
随机推荐
- ORA-12541: TNS: 无监听程序 怎么解决
ORA-12541: TNS: 无监听程序 怎么解决? 刚学 oracle ORA-12541: TNS怎么回事,已经打开了所有的服务 fzxs 2008-3-14 下载知道客户端,10分钟内有问必答 ...
- mac下的改装人生——mbp拆卸的各种资源整理
这几天弄了好多的mac上硬件的问题,我自己的mac也被我拆了3次,感觉自己终于跟硬件扯上关系了哈. 在这里放一些我找到比较好的资源教程,供大家学习,如果我以后还需要继续拆我的macbook,我也会回来 ...
- zabbix 编译
yum -y install xml* libxml* net-snmp net-snmp* php-bcmath ./configure --enable-server --enable-agent ...
- Java GC 专家系列3:GC调优实践
本篇是”GC专家系列“的第三篇.在第一篇理解Java垃圾回收中我们学习了几种不同的GC算法的处理过程,GC的工作方式,新生代与老年代的区别.所以,你应该已经了解了JDK 7中的5种GC类型,以及每种G ...
- 容斥原理应用(求1~r中有多少个数与n互素)
问题:求1~r中有多少个数与n互素. 对于这个问题由容斥原理,我们有3种写法,其实效率差不多.分别是:dfs,队列数组,位运算. 先说说位运算吧: 用二进制1,0来表示第几个素因子是否被用到,如m=3 ...
- java 解析xml文件案例
package xmlTest; import javax.xml.parsers.*; import org.w3c.dom.*; public class GetXml { public stat ...
- VMware workstation12 pro安装Ubuntu14.04LTS过程笔记
由于近期需要加强自己在Linux/C++编程方面的需要,把原来的CentOS6.5格了....在windows8.1系统上重新安装了VMware和Ubuntu... VMware安装Ubuntu的过程 ...
- 352. Data Stream as Disjoint Intervals
Plz take my miserable life T T. 和57 insert interval一样的,只不过insert好多. 可以直接用57的做法一个一个加,然后如果数据大的话,要用tree ...
- rails tutorial sample app
阅读第3章时,按照教程第一次运行rspec失败了: E:\05 Create\Code\temp\railstutorial\sample_app>rspec spec/requests/sta ...
- c#基础语言编程-集合
引言 在c#常用的集合分为非泛型集合和泛型集合. 非泛型集合的类和接口位于System.Collections命名空间.这些接口和类定义各种对象(如列表.队列.位数组.哈希表和字典)的集合. 泛型集合 ...