有時我很想知道javascript解析引擎是如何區(qū)分一個變量的值,比如下面這段代碼。

var x = 'javascript'; //javascriptx = "hello"; // hellox = 555; //555x = null; //nullx = a; //a is not definedx = true; //true

對于數(shù)字是直接賦值的,因為它沒有多樣性,數(shù)字就是數(shù)字。但是對于值是英文的情況就很難區(qū)分了,因為在編程語言中,英文既可能是字符串,也可能是引用的另外一個變量。因此如何區(qū)分變量和字符串就顯得格外重要,編程語言常常將字符串用引號括起來,從而達到區(qū)分變量和字符串的作用。有些語言比如java,它們還區(qū)分單引號和雙引號,單引號括起來的是一個字符,而雙引號括起來的才是字符串。但javascript并不區(qū)分字符和字符串,而是把它們都當作字符串,因此在javascript中單引號和雙引號并沒有什么區(qū)別。

雖然通過引號可以用來區(qū)分變量和字符串,但值往往也可能是一個關鍵字,比如上面那段代碼我將x賦值為null,那么這些編程語言又是如何區(qū)分變量和關鍵字的呢?

null = 123;console.log(null); //Uncaught ReferenceError: Invalid left-hand side in assignmentundefined = 456;console.log(undefined); //undefined

以上我給null和undefined分別賦給了另外一個值,其結果,給null賦值報錯了,給undefined賦值雖然沒有報錯,但也沒有成功。也許對于null和undefined來說,它們就是值。而變量則是尋找值。我們說javascript是如何區(qū)分變量和關鍵字,最終或許就變成了javascript是如何區(qū)分變量和值的。

分號

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式