The LiveScript Book

字面值

Numbers

.4是被视为无效的,你必须使用前导0。例如:0.4

1.2016
2.12.34
3.0.4

数字之间的下划线和数值后追加的字母将自动被忽略。

1.12_000yuan

等价于

1.12000;

可以使用base~number来表示236进制数字

1.6~12
2.2~1000
3.16~ff

翻译后是这样子的

1.8;
2.8;
3.255;

Booleans, Void, Null

别名跟 CoffeeScript 中的一样

1.true
2.false
3.on
4.off
5.yes
6.no

然后,结果如下

1.true;
2.false;
3.true;
4.false;
5.true;
6.false;

JavaScript 中,undefined是可以被重定义的,所以总是使用void操作符来产生undefined是一种高明的做法。

1.void
2.x = void
3.x
1.
2.var x;
3.x = void 8;
4.x;

Strings

你可以使用单引号或者双引号来表示一个字符串

1.'a string'
2."a string"
1.'a string';
2."a string";

字符串也可以使用前置反斜杠\来替代单引号,但是不能包含, ; ] ) } 或者是空白格

1.\word
2.func \word, \word
3.(func \word)
4.[\word]
5.{pro: \word}

JavaScript 是这样的

1.'word';
2.func('word', 'word');
3.func('word');
4.['word'];
5.({
6. pro: 'word'
7.});

双引号字符串允许插入,然而单引号是不可以的,简单的变量插入是可以省略掉花括号的。

1."The answer is #{2 + 2}"
2.'As #{is}'
3.
4.variable = \word
5."hello #variable"
1.var variable;
2."The answer is " + (2 + 2);
3.'As #{is}';
4.variable = 'word';
5."hello " + variable;

在你进行插入操作的字符串前使用%,将以数组的形式返回字符串的原始部分,这样就可以按你想的那样去连接字符了。

1.%"#x*#y+#z"
1.[x, "*", y, "+", z];

注释

单行注释是以 # 开头的,并且不会保留到编译后的 JavaScript 源码中去,
多行注释使用 /*注释*/,会将注释保留到编译后的结果中去

对象

花括号是可选的。

1.obj = {prop: 1, thing: \moo}
2.
3.person =
4. age: 23
5. eye-color: \green
6. height: 180cm
7.
8.oneline = color: \blue, heat: 4
1.var obj, person, oneline;
2.obj = {
3. prop: 1,
4. thing: 'moo'
5.};
6.person = {
7. age: 23,
8. eyeColor: 'green',
9. height: 180
10.};
11.oneline = {
12. color: 'blue',
13. heat: 4
14.};

动态关键字。

1.obj =
2. "#{variable}": 23
3. (person.eye-color): false
1.var obj, ref$;
2.obj = (ref$ = {}, ref$[variable + ""] = 23, ref$[person.eyeColor] = false, ref$);

如果你的属性名和变量名一样,你可以采用更快捷的方法。

1.x = 1
2.y = 2
3.obj = {x, z: y}
1.var x, y, obj;
2.x = 1;
3.y = 2;
4.obj = {
5. x: x,
6. z: y
7.};

布尔型成员属性快速设置:

1.{+debug, -live}
1.({
2. debug: true,
3. live: false
4.});

没必要再使用this.去访问成员了,我们可以使用@来表示。

1.this
2.@
3.@location
1.this;
2.this;
3.this.location;

正则表达式

正则表达式使用单个/来表示。

1./moo/gi
1./moo/gi;

使用//可以包含多行,评论,以及空格

1.//
2.| [!=]==? # equality
3.| @@ # constructor
4.| <\[(?:[\s\S]*?\]>)? # words
5.//g
1./|[!=]==?|@@|<\[(?:[\s\S]*?\]>)?/g;

列表

通常表字面量使用中括号描述:

1.[ 1, person.age, 'Chinese Food' ]
1.[ 1, person.age, 'Chinese Food' ];

如果表中的项目是不可以被调用的,那么逗号是可以省略的:

1.[ 1 2 3 true \word 'hello here' ]
1.[1, 2, 3, true, 'word', 'hello here'];

使用缩进语句块来创建隐式表。至少需要两个项目才行。如果你只有一个项目,你可以使用...来强制它建立隐式表:

1.my-list =
2. 32 + 1
3. person.height
4. 'beautiful'
5.
6.one-item =
7. 1
8. ...
1.var myList, oneItem;
2.myList = [32 + 1, person.height, 'beautiful'];
3.oneItem = [1];

当创建隐式表时,可以使用*来消除歧义,*并不包含到表内,仅仅是拿来避免与其他的表混淆用的。

1.tree =
2. * 1
3. * 2
4. 3
5. 4
6. * 5
7. 6
8. * 7
9. 8
10. * 9
11. 10
12. 11
13.
14.obj-list =
15. * name: 'tessa'
16. age: 23
17. * name: 'kendall'
18. age: 23
19.
20.obj-one-list =
21. * name: 'tessa'
22. age: 23
23. ...
1.var tree, objList, objOneList;
2.tree = [
3. [1, [2, 3], 4],
4. [5, 6, [7, 8, [9, 10]], 11]
5.];
6.objList = [{
7. name: 'tessa',
8. age: 23
9.}, {
10. name: 'kendall',
11. age: 23
12.}];
13.objOneList = [{
14. name: 'tessa',
15. age: 23
16.}];

单词表:

1.<[ list of words ]>
1.['list', 'of', 'words'];

范围

to表示少于等于这个数值。til表示少于这个数值。

你也可以使用by来指定步长。如果你省略第一个数值,将被默认为0

1.[ 1 to 5 ]            #=> [ 1, 2, 3, 4, 5]
2.[ 1 til 5 ] #=> [ 1, 2, 3, 4]
3.[ 1 to 10 by 2 ] #=> [ 1, 3, 7, 9 ]
4.[ 4 to 1 ] #=> [ 4, 3, 2, 1 ]
5.[ to 5 ] #=> [ 0, 1, 2, 3, 4, 5 ]
6.[ \A to \D ] #=> [ 'A', 'B', 'C', 'D' ]

如果你的范围中包含表达式,并且想要降序产生一个数组列表,那么必须显示指定by:

1.x = 4
2.[ 1 to x ] #=> [ 1, 2, 3, 4 ]
3.[ x to 0 by -1 ] #=> [ 4, 3, 2, 1, 0 ]

Misc

用于循环嵌套时的标签:

1.:label 4 + 2
1.label: {
2. 4 + 2;
3.}

constructor简写:

1.@@
2.@@x
3.x@@y
1.constructor;
2.constructor.x;
3.x.constructor.y;

占位符:


1....
 

LiveScript 字面量的更多相关文章

  1. Javascript正则构造函数与正则表达字面量&&常用正则表达式

    本文不讨论正则表达式入门,即如何使用正则匹配.讨论的是两种创建正则表达式的优劣和一些细节,最后给出一些常用正则匹配表达式. Javascript中的正则表达式也是对象,我们可以使用两种方法创建正则表达 ...

  2. es6 中增强的对象字面量

    http://www.cnblogs.com/Wayou/p/es6_new_features.html 对象字面量被增强了,写法更加简洁与灵活,同时在定义对象的时候能够做的事情更多了.具体表现在: ...

  3. [译]ES6新特性:八进制和二进制整数字面量

    原文:http://whereswalden.com/2013/08/12/micro-feature-from-es6-now-in-firefox-aurora-and-nightly-binar ...

  4. JavaScript对象的理解 及 字面量对象与数组的关系

    JavaScript的简单类型包括 数字.字符串.布尔值.null值.undefined值. 其他的值都是对象.对象是可变的键控集合.数组.函数.正则表达式都是对象. 对象是属性的容器,属性都是名字和 ...

  5. iOS @@创建NSURL的字面量

    @@ 是创建 NSURL 的字面量的绝佳方法(例如:@@"http://example.com")

  6. java基本数据类型的字面量

    java的基本数据类型一共有8种.其中:(每种类型后面列出了java中的该类型的字面量) 四种整型: int  4字节: 12  +12  -12  077 0xFF  0b101(JDK7中支持的二 ...

  7. Javascript模式(第三章字面量与构造函数)------读书笔记

    一 对象字面量 1.1对象字面量的语法 1,对象键值对哈希表,在其他的编程语言中称之为“关联数组”, 2 键值对里面的值,可以是原始类型也可以是其他类型的对象,称之为属性,函数称之为方法 3 自定义对 ...

  8. Swift开发第七篇——字面量转换&下标

    本篇分为两部分: 一.Swift 中的字面量转换 二.Swift 中的下标 一.Swift 中的字面量转换 所谓字面量就是指像特定的数字,字符串或者是布尔值这样能够直接了当地指出自己的类型并未变量进行 ...

  9. javascript中对象字面量的理解

    javascript中对象字面量与数组字面量 第一部分 我们知道JavaScript中的数据类型有基本数据类型和引用类型,其中Object类型就是非常常用的类型.那么如果创建一个Object类型的实例 ...

随机推荐

  1. ubuntu键盘映射

    在sublime下开发习惯把CapsLock和Shift间交换,windows下有很多软件可以修改键盘映射,在ubuntu下可以是哦用xmodmap命令,使用方法如下: 在自己用户的home目录下新建 ...

  2. LogBack日志小记

    优势 看了一下Logback的官方文档,说换成LogBack的原因大概有一下几个: 1. 说是logBack的设计开发和log4j是同一批人员,重写了内核,习惯上总体跟log4j一样,不会有太多生疏感 ...

  3. 【转】常用邮箱的 IMAP/POP3/SMTP 设置

    POP3 POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议.它是因特网电子邮件的第 ...

  4. Mongodb JAVA API

    连接mongodb 1.连接一个mongodb ); 2.连接mongodb集群 MongoClient mongoClient = ), new ServerAddress("localh ...

  5. Linux下环境搭建(一)——java、tomcat配置

    通过2个周末小憩的时间,终究是把linux环境下的jenkins+gitlab+jmeter框架给弄好了.jenkins的配置系列文章,可以翻看我以前的博文.此次,就将在linux下搭建环境的过程以博 ...

  6. MoveWindow和SetWindowPos

    SetWindowPos即使里面使用的是一样的矩形参数,有时候SetWindowPos还是会改变窗口的大小,真是坑爹!!! MoveWindow就不会改变 mark一下

  7. mount_cd9660:/dev/acd0: Input/output error

    mount -t cd9660 /dev/acd0 /cdrom g_vfs_done():acd0[READ(offset32768, length=204]error =5 mount_cd966 ...

  8. 【春节版】年度精品 XP,32/64位Win7,32/64位Win8,32/64位Win10系统

    本系统是10月5日最新完整版本的Windows10 安装版镜像,win10正式版,更新了重要补丁,提升应用加载速度,微软和百度今天宣布达成合作,百度成为win10 Edge浏览器中国默认主页和搜索引擎 ...

  9. Linux系统里让vim支持markdown格式的语法高亮

    Markdown是深受程序员喜爱的一个文件格式. 然而Linux里默认的vim设置,并不支持markdown格式的语法高亮显示. 下面就来介绍如何设置使得markdown格式的文件在vim里也能享有语 ...

  10. Android计算器简单逻辑实现

    Android计算器简单逻辑实现 引言: 我的android计算器的实现方式是:按钮输入一次,就处理一次. 但是如果你学过数据结构(栈),就可以使用表达式解析(前缀,后缀)处理. 而这个方式已经很成熟 ...