基礎篇:7.命名規範涉及的關鍵字和保留字都有哪些?

書接上文,前幾天寫了JavaScript基礎知識梳理的1-6條,如需查看請看這裏,如今咱們一塊兒來討論一下第7條,命名規範涉及的關鍵字和保留字都有哪些?html

固然,有過必定的JavaScript基礎知識的同窗必定會說,關鍵字和保留字就那麼一些,有什麼好講的,並且2個加起來還那麼多,記得都費勁,也不須要記住這些,命名的時候注意一下就能夠了,我想說,聽着以爲蠻有道理,竟讓我無言以對,編程

那咱們就順帶講講別的,新酒裝舊瓶!數組

首先咱們要知道有哪些關鍵字,哪些保留字:瀏覽器

關鍵字26個(帶*的爲第5版新增關鍵字)以下:編程語言

break  do  instanceof   typeof  case  else   new   var   catch   finally   return   void   continue   for   switch   while   *debugger函數

function   this   with   default   if   throw   delete   in   trythis

咱們能夠看到關鍵字確實很特殊,記憶的話大體能夠分爲幾類記憶:spa

條件語句類:for in ,do while , switch case , withdebug

判斷類語句 : if else , try catch , throw調試

結束類語句 : break , return , continue , default ,finally

檢測元素類型:instanceof , typeof

申明函數對象類 : new , var , void ,  function

調試操做類:*debugger , delete

特殊關鍵字 : this

保留字31個(第3版)以下:

abstract   boolean   byte   char   class   const   debugger   double   enum  exprot   extends   final   float   goto   implements  

import   int   interface   long   native   package   private   protected   public   short   static   super     synchronized   throws

transient   volatile

保留字看起來就沒那麼有規律了,但都是一些編程語言所經常使用的詞彙(不限於JavaScript),覺得沒有什麼規律,原本想把每一個詞表明什麼意思都標註出來的,可是發現部分詞彙表述不太正常,不知道如何完整表述其表明的真正含義,

怕誤導你們,仍是算了,想了解的能夠針對性的查一下。

 

看了這麼多,那我就要問了,什麼叫「關鍵字」,什麼叫保留字呢?

所謂「關鍵字」,就是在JavaScript中,有一些字符用來完成一些固定的功能或表達固定的意義,它們不能用來當作變量,這樣的字符就叫作關鍵字。關鍵字在JavaScript中有了固定的做用,那它確定是不可以被用來當變量的,

好比var關鍵字,它在JavaScript中用來定義變量,那它就不能用來作變量名了。還有象:function,if,else,for,while這些,都是關鍵,那麼在定義變量的時候,要回避這些關鍵字。

ps:絕對不能用關鍵字來作變量名,要否則別說代碼執行了,連預解釋都經過不了。(具體的反應就是代碼沒有執行,但瀏覽器也沒有報錯)

所謂「保留字」,是JavaScript中已經定義過的字,因爲考慮擴展性,一些保留字可能並無應用於當前的語法中,這是保留字與關鍵字的區別(就是說如今不是關鍵字,但之後有可能要成爲關鍵字的這些詞,就是保留字)。

從字面上也能夠理解,保留下的詞,未來有用的!好比說第3版的debugger,第5版就成了關鍵字了!

 

那有人說了,你上面說的這些關鍵字,保留字什麼的,讓我感受這也不能用,那也不能用,我怎麼樣才能規避這個問題呢?

這個問題問的好,那怎麼規避這個問題呢?下面就我我的的經驗,說一下本身的解決方案(純屬我的解決方案,不必定是最優的方案,若有更好的方案,萬望不吝賜教,謝謝!):

首先咱們須要先理解一下這麼一個該例,就是凡是變量,函數的命名都是:首字母必須是下劃線(_),ASCII 字母(a-z,A-Z),美圓符($),不能爲數字,

其餘能夠是下劃線(_),ASCII 字母(a-z,A-Z),美圓符($)和數字(其餘字符也是能夠的,但爲了變量或函數美觀且有意義,儘可能不要使用一些特殊的符號)。

1.全部的命名最好是一些跟須要的內容相關的詞,好比說我想申明一個變量,用來表示個人學校,那麼咱們能夠這樣定義  var mySchool = "個人學校";  好比說我想申明一個數組,表示不少人的名字,那麼咱們能夠這樣定義  var names = new Array();

用英文的複數表示更多;

2.函數和變量的命名規範,好比說咱們想什麼一個變量,表明班級,那麼顯然 var class = "個人班級"; 這樣申明就不對,儘管有意義,可是class是保留字,不能使用,說覺得了解決咱們記不清什麼詞是關鍵字,什麼詞是保留字的狀況,咱們有如下幾種命名方式能夠解決:

  1). 駝峯命名法(推薦使用):顧名思義,命名方式就像駱駝的背同樣,高高低低,第一個單詞首字母小寫,後面的單詞首字母大寫,好比:個人學校(mySchool),個人班級(myClass),年齡(Age)由於JavaScript是區分大小寫的,因此這樣命名基本上是不會寫到關鍵字和保留字的;

  2).下劃線命名法(不知道官方名字叫什麼,權且叫這個):顧名思義就是用下劃線來區分,這個也有2種方式,第一種,下劃線寫在前面,如:_name,_value,,_myfried,_peopleinformation這種適合單個的單詞,

可是有2個詞就有點彆扭,特別是較長的詞(_peopleinformation),要是英文很差的同窗還真不必定能懂是什麼意思,因此就有了第二種,下劃線寫在單詞中間,people_information,my_age,char_code;

  3).結合版,就是2中結合使用,那真是100%不會使用到關鍵字或保留字,如:_myClass,people_Information等等,至於說誰好誰壞,這個就因人而異了,沒有那個說是標準命名方式,只能看我的的習慣了,只要你的命名規則能夠規避關鍵字和保留字,

你本身建立一種全新的命名方式均可以,存在即有道理嘛!

  2015.11.05補充:還有一種命名方法我以爲也是蠻有意思的,也感受蠻實用的,那就是匈牙利命名法,聽着好高大上的趕腳,但實際的寫法跟駝峯命名法有點像,只是略微的不一樣,不一樣點在於:駝峯命名法是第一個單詞的首字母爲小寫,其餘單詞的首字母是大寫(如:myNumArray),匈牙利命名法是前面加一個表示類型的前綴,下面我就列一個表,體會一下:

類型 前綴 示例
Array(數組類型) a aMyList
Boolean(布爾型) b bMyAnswer
Float(浮點型) f fMoney
Function(函數型) fn fnMyFunction
Int(整數型) i iAge
Object(對象型) o oGirl
Regexp(正則型) re rePattern
String(字符串型) s sName

 

  看到此命名法,你有何感想,我以爲我仍是比較推薦此命名方式的,理由有2,一是他原本就結合了駝峯命名法,表達的意思清晰易懂,二是他定義了變量的類型,是什麼變量定義什麼前綴,熟悉這套命名規則後,之後一看到變量名就知道是什麼類型的變量,作什麼用的,恩恩,就這些!

 

貌似說的有點多,再說下去就是廢話了,上文可能有錯別字或者描述有誤的地方,若有發現,但願可以幫我指正,若是有什麼更好的建議和方法,但願你能分享一下,若是你以爲這篇文章還不錯,但願你能推薦給別人,那就不勝感激了,謝謝閱讀!

相關文章
相關標籤/搜索