zoukankan      html  css  js  c++  java
  • 初识LiveScript

     
     

    The LiveScript Book

    邂逅 LiveScript

    就像很多现代化的语言一样,LiveScript 使用缩进来表示语句块,使用换行取代分号来表示一个语句的结束
    (如果你想要一行多句你可以继续使用分号来进行断句)。

    例如

    1.  if 2 + 2 == 4
    2. do-something!

    将会翻译为

    1.  if (2 + 2 == 4) {
    2. doSomething();
    3. }

    你可以亲自使用 LiveScript 去将所有的例子转译成 JavaScript

    为了简洁起见,你可以省略函数调用时所需的括号

    1. add 2, 3

    等价于 JavaScript 中的

    1. add(2, 3);

    现在注释变成这样了

    1. #从行首到行尾

    对于 Lisp 用户而言,你们将非常高兴看到可以在变量名和函数名中嵌入-,这些变量将会被翻译成驼峰形式的名字
    例如 my-value = 2016 等价于 myValue = 2016

    差点忘了,LiveScript 源码格式是 .ls

    函数定义

    LiveScript 中进行函数定义是非常地容易的

    1.(x, y) -> x + y
    2.
    3.->
    # 一个空函数
    4.
    5.times = (x, y) ->
    6. x * y

    正如你所看到的,函数定义是非常的简短的。你可能已经注意到了,我们省略了 return
    LiveScript 中,几乎一切皆表达式,函数体内的最后一句将被作为返回值进行返回。
    如果你想要,你仍然可以使用return进行强制返回。你也可以在->前使用!取消自动返回值。no-ret = (x) !-> ...

    赋值

    基本的赋值操作正如你所想的那样,variable = value,变量的声明是没有必要的。但是,不像 CoffeeScript
    如果你哟修改外层作用域内的变量,你得使用 :=

    1.x = 10
    2.
    3.do ->
    4. x = 5
    5.
    6.do ->
    7. x := 2

    转译为 JavaScript

    1.var x;
    2.x = 10;
    3.
    4.(function() {
    5. var x;
    6. return x = 5;
    7.})();
    8.
    9.(function() {
    10. return x = 2;
    11.})();

    几乎一切都是表达式意味着你可以这么做

    1.x = if 2 + 2 == 4
    2. then 10
    3. else 0

    对应的 JavaScript 是这样的

    1.var x;
    2.x = 2 + 2 === 4 ? 10 : 0;

    就像循环,switch语句,甚至是try/catch语句,统统都是表达式

    你可以在 LiveScript 中使用关键字 const 来声明常量,
    在编译时将会进行语法检查,但是编译成的 JavaScript 代码并没有什么区别。

    1.const x = 10
    2.x = 0

    将会收到提示redeclaration of constant "x"at line 2 col 1

    但是对象并不会冻结即使你使用了const关键字,你依然可以修改它的属性和方法。如果你非得使得所有的变量变成常量,
    那么你可以在编译时,添加-k或者-const参数。

     
  • 相关阅读:
    Java最大栈深度有多大?-从一道面试题开始学习JVM
    高性能队列——Disruptor
    高性能的Redis之对象底层实现原理详解
    高性能的Redis之数据持久化小结
    高性能的Redis之数据结构小结
    Redis单线程为什么如此之快?
    kafka partition与 group的特性
    深扒Disruptor高性能的原因
    Python 元类编程实现一个简单的 ORM
    用vue.js实现的期货,股票的实时K线
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/5168674.html
Copyright © 2011-2022 走看看