JavaScript高級程序設計讀書筆記(三)之JS基本概念

一、語法

1、js是區(qū)分大小寫的testTest是不一樣的(重要)。
2、標識符是指變量、函數(shù)名、參數(shù)名、屬性名,命名規(guī)則是第一個字符必須是字母以及_$開頭,其他字符可以是字母_$數(shù)字
3、語言中的注釋是:

//單行注釋
/*
這是塊級注釋
*/

4、語言標準和嚴格模式,嚴格模式開啟:

function test(){
    'use strict'
    //嚴格模式開啟會處理ECMAscript中不確定的行為,而且對某些不安全的操作拋出錯位。
}

5、語句結(jié)束要加;,當然不加也是可以的,但是在代碼壓縮的解析上會帶來不必要的錯誤(強烈推薦加上)

二、關鍵字和保留字

關鍵字:按照規(guī)則,關鍵字也是語言保留的,不能用作標識符。
break do instanceof this function
typeof case else while try
new var catch in delete
finally return void throw if
continue for switch default with
debugger*

保留字

abstract enum int short static
boolean export interface import public
byte extends long super double
char final native synchronized implements
class float package throws volatile
const goto private transient protected
debugger
第5 版把在非嚴格模式下運行時的保留字縮減為下列這些:
class enum extends super const
export import
在嚴格模式下,第5 版還對以下保留字施加了限制:
implements package public interface private
static let protected yield

注意, let 和yield 是第5 版新增的保留字;其他保留字都是第3 版定義的。為了最大程度地保證兼容性,建議大家將第3 版定義的保留字外加let 和yield 作為編程時的參考。

在ECMAScript3版本代碼中使用關鍵字作標識符,會導致"Identifier Expected" 錯誤。而使用保留字作標識符可能會也可能不會導致相同的錯誤,具體取決于特定的引擎。一般來說,最好都不要使用關鍵字和保留字作為標識符和屬性名,以便與將來的ECMAScript 版本兼容。

三、變量

var messages;//聲明變量var是關鍵字,messages是標識符。
var messages='hi!';//變量messages保存的變量值`hi!`
messages=520;//沒問題,但是不推薦使用。
function test(){
      var messages01=1000;//函數(shù)里面命名的是局部變量。
      messages02=2000;//相當于全局變量,因為沒有用vae關鍵字。(但是不要這樣,嚴格模式會報錯)
};
test();
alert(messages01);//錯誤,訪問不到局部變量。
alert(messages);//2000沒問題
var a,b,c,d;//可以一次聲明多個變量以逗號分割分號結(jié)尾。
在嚴格模式下,不能定義eval和arguments的變量,就是標識符會導致語法錯誤。

四、數(shù)據(jù)類型

1. typeof:用于檢測數(shù)據(jù)類型
2. Undefined:只有一個值undefined,聲明一個變量但沒有賦值就會自動取值為undefined。
3. Null:只有一個值null,null表示空對象指針,用typeof檢測時返回'object'.null==nudefined //true.
4. Boolean:有兩個值true和false,Boolean(message)可以轉(zhuǎn)化任意值。
5. Number:是數(shù)字類型,'e7'10的7次方,'e-7'負10的7次方。0.1+0.2!=0.3而是0.30000000000000004,
js最小值Number.MIN_VALUE==5e-324,最大值Numer.NAX_VALUE==1.7976931348623157e+308。
NaN非數(shù)值是特殊數(shù)值,本來要返回數(shù)值的時候未返回數(shù)值的情況,NaN自身都不等于自身。
Number()轉(zhuǎn)換任意值,parseInt()轉(zhuǎn)化成整數(shù)第二個參數(shù)可以是幾進制, parseFlont()也是轉(zhuǎn)換成數(shù)值只是帶有小數(shù)如果有多個點只取第一個。
String:是字符串" "和''中的字符就是字符串,和字符串相加會被隱式轉(zhuǎn)換,toString()可以把別的類型轉(zhuǎn)化為字符串。
Object:代表對象,其實就是數(shù)據(jù)和功能的集合。創(chuàng)建對象var obj = new Object()。

五、操作符

1、一樣操作符:--++遞減和遞增,--2前置優(yōu)先級高,2--后置優(yōu)先級降低。一元'+',在非數(shù)字類型前會隱式轉(zhuǎn)換成數(shù)值。一元'-'會把數(shù)值變成負數(shù),非數(shù)值和一元加一樣。
2、位操作:暫略過。
3、布爾操作符:非、&&與兩個都是真、||或有一個為真。
4、乘性操作符:*乘、/除、%余(求模)。
5、加性操作符:+加、-減。
6、關系操作符:<=>=<>.
7、相等操作符:==相等操作符會隱式轉(zhuǎn)換類型進行比對、===全等于不會轉(zhuǎn)換類型比對,比較嚴謹。
8、條件操作符:var value = trueAndFalse ? true : false;
9、賦值操作符:=*=/=%=+=-=<<=>>=>>>=、簡化用的,并不能提升性能。
10、逗號操作符:可以在一行執(zhí)行多個操作,var a,b,c,d;還可以賦值var a=(1,2,3,4)//a是4。

六、語句

//if語句
if(true){true執(zhí)行此處代碼塊}else{false執(zhí)行此處代碼}
if(true){true執(zhí)行此處代碼塊}else if(true){false執(zhí)行此處代碼}.多個..else{false執(zhí)行此處代碼}
//do...while語句
do...while語句是后測試語句,do...while中的代碼至少執(zhí)行一次。
do{true執(zhí)行的代碼}while(條件為true)
while語句
while是前測試語句,只有在達到條件就是為true才會執(zhí)行。
while(false and true){是true則執(zhí)行此處代碼}。
for語句
for循環(huán),也是個前測試語句
for(聲明變量;運算條件;變量變化){循環(huán)代碼}
for....in...語句
for...in...語句是一個精準的迭代語句,可以用來枚舉對象屬性
for(property in expression){執(zhí)行的代碼}
label語句
將要返回的標簽。多和break和continue一起使用,多用于嵌套循環(huán),跳到標簽指定位置。
標簽名:for(;;){break 標簽名}
break和continue
break是直接跳出當前循環(huán),continue也是跳出循環(huán)但是會從循環(huán)頂端再次執(zhí)行。
with語句
將代碼作用于一個對象的作用域中,少使用會降低性能
with(對象){該對象的私有作用域}
switch語句
流程控制語句和if很想
switch(將要判斷的對象){
case (判斷)://如果是將執(zhí)行以下代碼
        代碼;
        break;//執(zhí)行完跳出
case (判斷2)://如果是將執(zhí)行以下代碼
        代碼;
        break;//執(zhí)行完跳出
default://如果都不是將執(zhí)行以下代碼
        代碼;
}

七函數(shù)

函數(shù)是每一個語言的核心概念,通過封裝多條語句,可以在調(diào)用。ECMAScript通過function關鍵字來聲明,后面跟一組參數(shù)和函數(shù)體。

1、參數(shù)

函數(shù)的參數(shù)沒有限制可以任意傳,也可以是任意類型,函數(shù)的參數(shù)是有arguments對象來管理的。arguments對象和數(shù)組類似但不是數(shù)組,可以通過[]來訪問,使用length可以查看arguments的長度。嚴格模式對arguments做了限制,重寫arguments的值會報錯。
2.沒有重載
JavaScript沒有重載,通過傳入不同的參數(shù)和類型可以模擬重載,兩個相同的名的函數(shù),后面會吧前面覆蓋。

小結(jié)

本章主要介紹了,JavaScript的語法和數(shù)據(jù)類型(六個)五個基本類型一個引用類型,各個操作符,還有流程控制語句,以及函數(shù)的簡單理解。

(暫停)

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容