13. 變量

2018-02-24 16:11 更新
  • 13.1?一直使用?const?來聲明變量,如果不這樣做就會產(chǎn)生全局變量。我們需要避免全局命名空間的污染。地球隊長已經(jīng)警告過我們了。(譯注:全局,global 亦有全球的意思。地球隊長的責(zé)任是保衛(wèi)地球環(huán)境,所以他警告我們不要造成「全球」污染。)

    // bad
    superPower = new SuperPower();
    
    // good
    const superPower = new SuperPower();
  • 13.2?使用?var?聲明每一個變量。

    為什么?增加新變量將變的更加容易,而且你永遠(yuǎn)不用再擔(dān)心調(diào)換錯?;?跟?,。

    // bad
    const items = getItems(),
        goSportsTeam = true,
        dragonball = 'z';
    
    // bad
    // (compare to above, and try to spot the mistake)
    const items = getItems(),
        goSportsTeam = true;
        dragonball = 'z';
    
    // good
    const items = getItems();
    const goSportsTeam = true;
    const dragonball = 'z';
  • 13.3?將所有的?const?和?let?分組

    為什么?當(dāng)你需要把已賦值變量賦值給未賦值變量時非常有用。

      // bad
      let i, len, dragonball,
          items = getItems(),
          goSportsTeam = true;
    
      // bad
      let i;
      const items = getItems();
      let dragonball;
      const goSportsTeam = true;
      let len;
    
      // good
      const goSportsTeam = true;
      const items = getItems();
      let dragonball;
      let i;
      let length;
  • 13.4?在你需要的地方給變量賦值,但請把它們放在一個合理的位置。

    為什么?let?和?const?是塊級作用域而不是函數(shù)作用域。

      // good
      function() {
        test();
        console.log('doing stuff..');
    
        //..other stuff..
    
        const name = getName();
    
        if (name === 'test') {
          return false;
        }
    
        return name;
      }
    
      // bad - unnecessary function call
      function(hasName) {
        const name = getName();
    
        if (!hasName) {
          return false;
        }
    
        this.setFirstName(name);
    
        return true;
      }
    
      // good
      function(hasName) {
        if (!hasName) {
          return false;
        }
    
        const name = getName();
        this.setFirstName(name);
    
        return true;
      }
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號