JavaScript基本概念(一)--- 基本文法,javascript基本概念

來源:互聯網
上載者:User

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的注釋一致,單行的注釋寫為//,多行的注釋寫成/*注釋內容*/的形式,多行注釋除了第一行和最後一行,中間的部分可以有*號也可以沒有*號,看大家的習慣了;

 四、strict 模式

    關於strict 模式的內容,對我來說還是不是太懂,畢竟js這部分解除的並不是太多,看的時候在網上百度了一下關於strict 模式的內容,strict 模式顧名思義就是讓javascript在更嚴格的模式下運行,這是ECMAscript5中添加的一個新的模式。那麼設定strict 模式的原因有哪些呢?主要有一下幾個方面:

  • 消除javascript中的一些不嚴謹、不合理之處,減少一些怪異的行為;
  • 消除代碼啟動並執行一些不安全地方,提高代碼啟動並執行安全;
  • 提高編譯器效率,增加運行速度;
  • 為未來新版本的Javascript做好鋪墊。

"strict 模式"體現了Javascript更合理、更安全、更嚴謹的發展方向,包括IE 10在內的主流瀏覽器,都已經支援了strict 模式,在strict 模式下,代碼的運行結果可能與正常模式的運行結果不相同,甚至在正常模式下啟動並執行代碼在strict 模式下是無法啟動並執行,那麼怎麼進入strict 模式呢?

    進入strict 模式需要使用"use strict" ,如果要在整個指令檔中使用strict 模式,那麼需要在指令檔的第一行添加"use strict",此時整個指令檔將以strict 模式運行,如果沒有放在第一行,那麼是無效的,特別是對於多個指令檔整合成一個檔案的時候,那麼就需要多注意一下了;如下面的例子,第一個<script>標籤中的內容就是strict 模式,第二個還是正常模式:

  

<script>            "use strict"             v = 1;            console.info(v);//運行結果:"Uncaught ReferenceError: v is not defined"        </script>        <script>            s = 2;            console.info(this.s);//運行結果:"2"        </script>

  可以看到,在strict 模式下,是不允許對未聲明的變數進行賦值的,但是在正常模式下,未聲明的變數賦值後預設是全域變數。如果把"use strict"放在單個函數的第一行,那麼整個函數將以strict 模式運行,如下所示:

function testUseStrict () {                "use strict";                d = 3;                console.info(d);//運行結果:"Uncaught ReferenceError: d is not defined"            }                        testUseStrict();

將"use strict"放在函數第一行,那麼整個函數將以strict 模式的方式進行運行,這個方法為我們整合指令檔提供了一種思路,我們可以將整個指令檔放入到一個匿名函數中,立即執行這個匿名函數即可,如下所示:

<script>            (function(){                "use strict";                var v = 11;                console.info(v);//運行結果:11            })();        </script>

  關於strict 模式大家可以訪問以下這個連結,這位大神寫的就清晰多了,後面的javascript學習中用到strict 模式的地方我也會標出來的。連結送上: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的學習我會持續更新的,希望能跟大家一起學習,寫的有問題的地方也歡迎大家之處,謝謝。

  

  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.