zoukankan      html  css  js  c++  java
  • CoffeeScript的缩进

    CoffeeScript用缩进代替了花括符“{}”,作用范围的划分只靠缩进。这带来代码精简、简洁的同时,有时候也让人困惑。

    比如说:

    if 3 > 1
      alert("噢,宇宙真理!");
    else
      alert("顶!支持!威武!有希望了!");

    编译成javascript,就是

    if (3 > 1) {
      alert("噢,宇宙真理!");
    } else {
      alert("顶!支持!威武!有希望了!");
    }

    1、这个缩进,最重要的是缩进的层次,而每层缩进多少,是2个字符,还是4个字符,都没有关系。比如:

    if 3 > 1
      alert("噢,宇宙真理!");
    alert("顶!支持!威武!有希望了!");

    ==》javascript:

    if (3 > 1) {
      alert("噢,宇宙真理!");
    }
    
    alert("顶!支持!威武!有希望了!");

    可以看到,两个alert,所属缩进层次不同,因此会有不同的作用范围。


    if 3 > 1
      alert("噢,宇宙真理!");
      alert("顶!支持!威武!有希望了!");

    ==>javacript:

    if (3 > 1) {
      alert("噢,宇宙真理!");
      alert("顶!支持!威武!有希望了!");
    }

    2个alert在这里都是缩进了2个字符。如果都缩进4个字符、8个字符,编译结果都是一样的。缩进,最重要的是缩进的层次,而每层缩进多少个字符,并无硬性规定。

    2、缩进的时候,要么全部用tab,要么全部用空格,绝对不能混用,否则编译不通过

    这也是coffeescript最令人蛋疼的地方。

    但单从外观看,很难区分用tab键的缩进和空格键的缩进有什么区别。如果用sublime text作为编辑工具,只要Ctrl + A,全选,就能看到二者的不同。并且,其右下角可以选每个层次的缩进字符数,十分方便。如果勾选了 "Indent using spaces"选项,那么在sublime text里,按tab和按空格键都可以,sublime text会统一处理为空格。





  • 相关阅读:
    vector tips
    DataTable DataRow String Tips...
    Virtual Key Codes
    有关多线程的一些技术问题
    用异步的方式调用同步方法
    C#线程锁(下)
    C#线程锁(中)
    Web应用中并发控制的实现
    主题:数据库事务与并发(Hibernate)
    前端开发桌面终极工具(FastStone Capture)推荐(转)
  • 原文地址:https://www.cnblogs.com/leftfist/p/4257843.html
Copyright © 2011-2022 走看看