值
有時我很想知道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ū)分變量和值的。
分號
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數(shù)據(jù)結構來看看(二) 2017-07-26