前言: 新的一年開始了,今年的主要目標就是javascript,最近在看javascript高級程式設計(第三版),單純的看書也是個很枯燥的事,所以就把看完的東西再寫一遍吧,一方面加深印象,一方面理解不正確的也好讓園子裡面的大神們給提提意見。 這本書前兩章主要是javascript簡介以及在...
前言:
新的一年開始了,今年的主要目標就是javascript,最近在看javascript高級程式設計(第三版),單純的看書也是個很枯燥的事,所以就把看完的東西再寫一遍吧,一方面加深印象,一方面理解不正確的也好讓園子裡面的大神們給提提意見。
這本書前兩章主要是javascript簡介以及在HTML中使用javascript,算是對javascript的一個簡單的瞭解,從第三章開始就進入了真正的學習,那麼我的讀書筆記也從第三章開始寫,第三章是基本概念,主要從語法、數據類型、流控制語句以及函數四個方面來講解,今天我主要寫一下關於數據類型之前的一些基礎的內容。
語法:
javascript的語法主要借鑒了C以及其他C類語言的一些語法,所以如果有C或者JAVA之類的語言基礎,那麼在理解javascript語法的時候可能會更加容易一點。
一、區分大小寫
javascript與java一樣(本人是搞java的,所以就以java為例了),變數、函數名以及操作符等這些內容都是嚴格區分大小寫,變數名hello和變數名Hello是完全不同的兩個變數,不能混為一談;另外在給函數命名的時候,是不能使用關鍵字作為函數名的,不然會出現問題的,舉個例子,有一次我要寫個刪除的方法,當時也沒想起delete是關鍵字,就用delete做了函數名,但是運行時候怎麼都出來效果,剛開始還以為是函數內部的代碼寫錯了,但是我把函數裡面的代碼全部刪除掉只留下一個console.info()之後發現還是出不來效果,後來才想起delete是關鍵字,不能用來做函數名,改了名字之後才正確。
二、標識符
標識符就是屬性名、變數名以及函數名、函數參數等這些名稱,javascript的標識符和java的標識符一樣,第一位必須是字母或者下劃線(_)或者美元符號($),其他字母可以是數字、字母、下劃線以及美元符號,雖然沒有硬性規定標識符必須寫成駝峰式的,但是為了閱讀方便,我們還是約定俗稱的把javascript的標識符寫成駝峰式的。
三、註釋
javascript的註釋和java的註釋一致,單行的註釋寫為//,多行的註釋寫成/*註釋內容*/的形式,多行註釋除了第一行和最後一行,中間的部分可以有*號也可以沒有*號,看大家的習慣了;
四、嚴格模式
關於嚴格模式的內容,對我來說還是不是太懂,畢竟js這部分解除的並不是太多,看的時候在網上百度了一下關於嚴格模式的內容,嚴格模式顧名思義就是讓javascript在更嚴格的模式下運行,這是ECMAscript5中添加的一個新的模式。那麼設置嚴格模式的原因有哪些呢?主要有一下幾個方面:
- 消除javascript中的一些不嚴謹、不合理之處,減少一些怪異的行為;
- 消除代碼運行的一些不安全地方,提高代碼運行的安全;
- 提高編譯器效率,增加運行速度;
- 為未來新版本的Javascript做好鋪墊。
"嚴格模式"體現了Javascript更合理、更安全、更嚴謹的發展方向,包括IE 10在內的主流瀏覽器,都已經支持了嚴格模式,在嚴格模式下,代碼的運行結果可能與正常模式的運行結果不相同,甚至在正常模式下運行的代碼在嚴格模式下是無法運行的,那麼怎麼進入嚴格模式呢?
進入嚴格模式需要使用"use strict" ,如果要在整個腳本文件中使用嚴格模式,那麼需要在腳本文件的第一行添加"use strict",此時整個腳本文件將以嚴格模式運行,如果沒有放在第一行,那麼是無效的,特別是對於多個腳本文件整合成一個文件的時候,那麼就需要多註意一下了;如下麵的例子,第一個<script>標簽中的內容就是嚴格模式,第二個還是正常模式:
<script> "use strict" v = 1; console.info(v);//運行結果:"Uncaught ReferenceError: v is not defined" </script> <script> s = 2; console.info(this.s);//運行結果:"2" </script>
可以看到,在嚴格模式下,是不允許對未聲明的變數進行賦值的,但是在正常模式下,未聲明的變數賦值後預設是全局變數。如果把"use strict"放在單個函數的第一行,那麼整個函數將以嚴格模式運行,如下所示:
function testUseStrict () { "use strict"; d = 3; console.info(d);//運行結果:"Uncaught ReferenceError: d is not defined" } testUseStrict();
將"use strict"放在函數第一行,那麼整個函數將以嚴格模式的方式進行運行,這個方法為我們整合腳本文件提供了一種思路,我們可以將整個腳本文件放入到一個匿名函數中,立即執行這個匿名函數即可,如下所示:
<script> (function(){ "use strict"; var v = 11; console.info(v);//運行結果:11 })(); </script>
關於嚴格模式大家可以訪問以下這個鏈接,這位大神寫的就清晰多了,後面的javascript學習中用到嚴格模式的地方我也會標出來的。鏈接送上:http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html
五、語句
javascript的語句和java幾乎一樣,都是以分號結尾,但是不同的是java中一行結束必須加上分號,但是在javascript中,一行結束是可以不加分號的,有解析器自己去判斷語句的結尾,如下所示:
var a1 = 2 + 2 var a2 = 5 - 1; console.info(a1);//4 console.info(a2);//4
另外,在java中if語句是可以寫成這個樣子的if(condition) ....... ,javascript中也是可以這樣寫的,但是不管是結尾不加分號還是if條件語句不加{}的寫法,在某些時候都會引起一些問題,所以最好還是寫上的好;
關鍵字:
javascript語言中也是存在一些關鍵字以及保留字的,這些關鍵字可以用來表示控制語句的開始或者結束,或者用語執行一些特定的操作,關鍵字是語言保留的,因此不能作為標識符,關於關鍵字和保留字大家可以上網搜索一下,我在這裡就不把這些關鍵字保留字寫出來了。
今天暫時就寫到這裡,關於javascript的學習我會持續更新的,希望能跟大家一起學習,寫的有問題的地方也歡迎大家之處,謝謝。