Skip to content

Instantly share code, notes, and snippets.

@yyx990803
Last active April 21, 2020 03:58
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yyx990803/6384835 to your computer and use it in GitHub Desktop.
Save yyx990803/6384835 to your computer and use it in GitHub Desktop.
之乎者也,一个文言风的类JS玩具语言
斐波那契者 得甲
 閱甲
    零乎
      零是也
    壹乎
      壹是也
    它者乎
      前者 甲 壹 差之 遞歸之也
      前前者 甲 貳 差之 遞歸之也
      前 前前 和之是也

  • 賦值:

    var a = b
    ---
    甲者乙也
    
    function a () {
      ...
    }
    ---
    甲者...是也
    
    function a (b) {
      return b + c
    }
    ---
    甲者 得乙
      乙 丙 和之是也
    
  • 运算:

    a +|-|*|/ b
    ---
    甲 乙 和|差|积|商之
    
    (a || b) && c
    ---
    甲 乙 或之 丙 与之
    
    !!a && !a
    ---
    甲乎 非甲 与之
    
  • 函數調用:

    test(a, b)
    ---
    甲 乙 試之
    
    a.test(b, c)
    ---
    甲取乙 丙 試之
    
    a.b.test(1)
    ---
    乙之於甲取壹 試之
    
    a.test(function () { ... })
    ---
    甲取無名者...是也 試之
    
  • 對象:

    var A = {
      B: BB
      C: {
        D: DD
      }
    }
    A.B = E
    ---
    甲者
      乙曰乙乙
      丙曰
        丁曰丁丁也
    乙之於甲者 戊也
    
  • 流控制:

    if (A) {
      B
    } else if (C) {
      D
    } else {
      E
    }
    ---
    甲乎 乙
    不然 丙乎 丁
    不然 戊
    
    switch (X) {
        case A:
            ...
        case B:
            ...
        default:
            ...
    }
    ---
    閱甲
      甲乎 ...
      乙乎 ...
      它者乎 ...
    
  • 循環

    for (i in 1..100) {
        a = {
            i: i,
            el: arr[i]
        }
    }
    ---
    壹至百循之
      甲者
        引曰引
        元曰元也
    
    for (key in obj) {
        a = {
            key: key,
            value: obj[key]
        }
    }
    ---
    對象循之
      甲者
        名曰名
        實曰實也
    
  • 數組遍歷

    arr.forEach(function (el, i) {
        console.log(el, i)
    })
    ---
    數組循之
      案取元 引 錄之是也
    
    arr.filter(function (el) {
        return !!el.completed
    })
    ---
    數組篩之
      成之於元乎是也
    
    arr.map(function (el) {
        return el * 2
    })
    ---
    數組映之
      元 貳 積之是也
    

未完待續...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment