1. 程式人生 > >第一部分_ javascript核心部分:1.詞法結構

第一部分_ javascript核心部分:1.詞法結構

除了 cas 概述 transient 文本 new t asc typeof 桌面系統

本文作為個人學習筆記,一直也沒有重視javascript的系統學習(javascript是最容易被人忽視的語言),我都是要用的時候百度一下查找下資料開始用,但沒有系統的,學習,和整理過javascript,有時候直接用百度來的Javascript代碼改改就開始用了(拿來主義),做了3年半技術,現在構建自己的技能樹發現自己這一塊是一個空缺,所以就準備好好復習下javascript,便有了這系列的筆記。計劃主要從兩個大方向開始復習,一是:javascript核心部分,二:客戶端javascript。

概述:

javascript是面向Web的編程語言,大部分網站都在使用javascript,並且Web瀏覽器,桌面系統,遊戲機,平板電腦,智能手機。都包含了javascript解析器,這使得javascript稱的上是最廣泛的編程語言。“javascript”這個名字經常被人誤解,除了語法看起來和java類似之外,javascript和java是完全不同的開發語言,javascript早已經超出了“腳本語言”本身範疇了,成為一種健壯性,高效性和通用為一身的編程語言。

幹貨開始:

1.詞法結構

編程語言的語法結構是一套基礎規則,用來描述如何使用這門編程語言來編程,作為語法的基礎,他規定了變量名是什麽樣的,怎麽寫註釋,以及程序語句怎麽分隔等規則。

1.1字符集

javascript程序是用Unicode字符集編寫的,Unicode是Ascll和Latin-1的超集,並且支持地球上幾乎所有的語言,ECMAScript 3要求javaScript的實現必須支持Unucide2,1及h後續版本,EcMAScript 5則要求支持Unicode 3及後續版本

1.1.1 區分大小寫

javascript是區分大小寫的語言

,也就是說關鍵字,變量,函數名稱和所有的標識符都必須區分采用一致的大小寫形式,比如,關鍵詞“while”必須寫成“while”,就不能寫成“While”或者“WHILE”,同樣,“online”,"Online","OnLine","ONLINE"這是4個不同的變量名。

1.1.2 空格,換行符合格式控制符

javascript會忽略掉程序中的標識(token)之間的空格。多少情況下,javascript同樣會忽略換行符,由於可以在代碼中隨意的使用空格和換行,因此可以采用整齊,一致的縮進來形成統一的編程風格,提高代碼可讀性。(小說嘀咕:編程規範很重要)

1.2註釋

Javascript支持兩種格式的註釋,在“//”之後的文本都會被javascrip當做是註釋忽略掉,另外一種註釋是“/*”和“*/”之間的文本也會被當成是註釋,這種註釋可以跨行書寫,但不能嵌套的註釋,例如:

//這裏是單行註釋

/*這裏是一段註釋*/ //這裏是另外一段註釋

/*

*這裏是大段註釋(可以多行)

*/

1.3直接量

直接量,就是程序中使用的數據值,下面列出的都是直接量

12//數字

1.9//小數

“Holle World”//字符串文本

“Hi”//另外一個字符串

true//布爾值

false//另外一個布爾值

/javascript/gi //正則表達式(模糊匹配)

null //空

1.2.4標識符和關鍵字

標識符符就是一個名字,在javasrcipt中,標識符用對變量和函數進行命名,或者用做javascript代碼中的循環語句跳轉位置的標記,javascript標識符必須以字母,下劃線(_)或美元符($)開始,後續的字符可以是字母,數字,下劃線或者美元符(數字不允許作為首字符出現的,以便javascript可以輕易分開標識符和數字),下面是合法的標識符

i

my_variable_name

v13

_dummy

$str

保留字

javascript 把一些標識符拿出來用做自己的關鍵字,因此,就不能在程序中把這些關鍵字用做標識符了:

break delete function return typeof case do if switch var catch else in this void continue false instanceof throw while debugger finally new true with

default for null try

javascript同樣保留了一些關鍵字,這些關鍵字在EcmaScript 5保留 了這些關鍵字:

class const enum export extends import super

此外,下面這些關鍵字在普通的javascript代碼中是合法的,但在嚴格模式下是保留字

implements let private public yield

interface package protected static

嚴格模式同樣對下面的標識符使用做了嚴格的限制,它們並不完全是保留字,但不能用做變量名,函數名或參數名:

arguments eval

ECMAScript3將Java的所有關鍵字都列為自己的保留字,盡管這些保留字在ECMSAScript 5中放寬了限制,但如果你希望代碼在ECMAScript 3 實現解釋器上運行的話。

應該避免使用這些關鍵字作為標識符

abstract double goto native static boolean enum implements package super byte export import package super byte export import private sybchronized

char final interface public transient const float long short volatile

Javascript 預定義了很多全局變量和函數,應當避免把他們的名字用做變量名,和函數名:

arguments encodeURI Infinity Number RegExp Array encodeURIcomponent isFinite object String Boolean Error isNaN parseFloat SyntaxError Date eval JSON parseInt TypeError decodeURL EvalError Math RangeEError undefined decodeURICpmponent Function NaN ReferenceError URIError

JavaScript的具體實現可能定義獨有的全局變量和函數,每一種特定的JavaScript運行環境(客戶端,服務端等)都有自己的一個全局屬性列表,這一點是需要牢記的。

1.2.5 可選的分號

和其他的語言一樣,javascript使用分號(;)將語句分隔開,這對增強代碼的可讀性和整潔性是非常重要的,缺少分隔符,一條語句的結束就成了下一條語句的開始了。反之亦然,在JavaScript中,如果語句各種獨占了一行,通常可以省略掉語句之間的分號,我個人習慣是使用(;)來明確標記語句結束,即使在並不完全需要分號的時候也是如此。(我比較推薦這種方式,方面代碼的閱讀,和避免出錯)。另外一種編碼風格是,在任何可以省略掉分號的地方將其省略掉,只有在不得不用時才使用上分號。

本文只做個人復習總結使用,如有寫的有錯誤的地方,希望大家指出,我定及時改正....

第一部分_ javascript核心部分:1.詞法結構