美文网首页程序员
node.js要不要加分号

node.js要不要加分号

作者: 闲睡猫 | 来源:发表于2018-07-10 14:58 被阅读171次

    一开始,关于在node.js句末不加分号,我是拒绝的。因为有时不加分号会报错。

    我觉得node.js在语法层面挺拧巴的,要么就像PHP那样严格要求加分号,要么就像python一律不加分号。而node.js却表现出一副欲拒还迎的姿态,让人感觉就是既要拥抱变化,又要抱残守缺。

    加不加分号,这是一个问题

    直到有一天我了解了加不加分号的场景,才终于释然

    一言以蔽之:当代码是以 ( [ ` 这些符号开头时,就需要在代码之前加上分号,其他场景都不需要加分号

    let msg = '加不加分号呢'
    
    (function () {
        console.log('我是一个匿名函数')
    }())
    

    结果报错:

    我是一个匿名函数
    /Users/airmb/code/node/01/04.js:3
    (function () {
    ^
    
    TypeError: "加不加分号呢" is not a function
        at Object.<anonymous> (/Users/airmb/code/node/01/04.js:3:1)
        at Module._compile (module.js:652:30)
        at Object.Module._extensions..js (module.js:663:10)
        at Module.load (module.js:565:32)
        at tryModuleLoad (module.js:505:12)
        at Function.Module._load (module.js:497:3)
        at Function.Module.runMain (module.js:693:10)
        at startup (bootstrap_node.js:191:16)
        at bootstrap_node.js:612:3
    

    正确的写法:

    let msg = '加不加分号呢'
    
    ;(function () {
        console.log('我是一个匿名函数')
    }())
    

    同理,以 [ 或 ` 开头的代码应该这么写:

    ;['章北海', '罗辑'].forEach(function (item) {
        console.log(item)
    })
    
    ;`
    宇宙中究竟有多少个文明?
    高级文明会怎么对待地球?
    是友善地相处?
    还是残忍地消灭?
    或者只是安静地观察?
    `.toString()
    

    相关文章

      网友评论

        本文标题:node.js要不要加分号

        本文链接:https://www.haomeiwen.com/subject/uenfpftx.html