1. 程式人生 > >JavaScript學習筆記——變數,變數型別,運算子,語句—day one

JavaScript學習筆記——變數,變數型別,運算子,語句—day one

目錄

一、瀏覽器

二、JS基本語法:

1、變數

2、變數型別

值型別(基本型別)

引用型別

型別轉換

typeof操作符

3、運算子

算術運算子

關係運算符

邏輯運算子

4、語句

條件語句

迴圈語句

跳轉語句


一、瀏覽器

瀏覽器的組成:shell部分(可視部分)

                         核心部分(渲染引擎,JS引擎,其它部分)

瀏覽器是如何工作的

主流瀏覽器及核心

 

二、JS基本語法:

基本語法規則:

每條語句以分號(;)結尾

JS語法錯誤會引發後續程式碼塊終止,但不會影響其它JS程式碼塊

書寫格式要規範,“= + - /”等運算子兩邊都應該有空格

js引入方式:外部js檔案和內部js。不能同時外部JS又內部js。同時引用內部js會失效。

1、變數

可變的量,用來儲存資料,宣告,賦值。

var單一變數。

命名規則:

1.可以包含英文字母、數字、_、$;

2.開頭只能是英文字母、_、$;

3.不能包含保留字(如var有特殊語法含義)

2、變數型別

值型別(基本型別)

字串(String)、數字(Number)、布林(Boolean)、對空(Null)、未定義(Undefined)、Symbol。

布林型只有兩個值,ture和false。

Symbol 是 ES6 引入了一種新的原始資料型別,表示獨一無二的值。

NaN:not a number(不是一個有效數字,但它屬於number資料型別) 。

表面上 undefined 與 null 都是什麼都沒有的意思,但是實際上 undefined 是未定義(就是變數沒有初始化),null 是一個變數初始化了,但是什麼值都沒給,只給了一個空物件;進一步說,undefined 與 null是值相等,型別不相等。

引用型別

物件(Object)、陣列(Array)、函式(Function)。

型別轉換

強制轉換

利用js提供的函式parseInt() ,parseFloat() ,Number(),Boolean()進行資料轉換,每個函式具體有很多用法,使用前先百度。

parseInt("12.3元")//12

 parseInt("abc");//NaN

 parseFloat("12.35元")//12.35

 parseFloat("12.23.122");//12.23

 Number(true);//1

Number(null);//0

Boolean("abc");//true

 Boolean('');//false

隱式型別轉換

字串和數值型別之間的轉換,在進行字串和數字之間進行減乘除取模運算或者進行比較運算時,他會自動把字串轉換為數字。

typeof操作符

可用來檢視 JavaScript 變數的資料型別。

typeof NaN                    // 返回 number
typeof false                  // 返回 boolean
typeof [1,2,3,4]              // 返回 object

typeof myCar                  // 返回 undefined (如果 myCar 沒有宣告)

typeof new Date()             // 返回 object
typeof function () {}         // 返回 function

3、運算子

優先順序:

算術運算子 > 關係運算符 > 邏輯運算子

算術運算子

①  “+”

   1.數學運算,字串連線

    2.資料型別加字串都等於字串

② “/”

    1/0結果為infinity(正無窮)   -1/0結果為-infinity(負無窮)  0/0 結果為NAN (not a number不是一個數)

③   “-”、“*”、“%”(摩爾,取餘)、“=”(優先順序最低)、“()”(括號優先順序最高)

④   “a+=10” 

      a=a+10的簡寫

⑤  “a++” 

     先執行當前所在語句,再a+1賦值給a,再執行下一條語句。“a--”同理

⑥  “++a” 

      先把a+1賦值給a,再執行當前所在語句。b=--a+--a;最後b的值為-1,因為每次--a都是在當前改變了的a基礎上。

關係運算符

 <    <=    >     >=    ==    !=    ===      字串比較大小比較的就是ascl碼順序。

邏輯運算子

(&&與、||或、!非)優先順序是:!、&& 、||  。

4、語句

條件語句

通過判斷表示式的值來決定執行還是跳過某些語句,包括if語句和switch語句。

if語句  

條件必須放在if後面的圓括號內,條件的求值結果永遠是一個布林值,即只能是true或false。

if(1>2){
    alert('1');
}

如果if語句中的花括號部分只包含一條語句,可以不使用花括號。但因為花括號可以提高指令碼的可讀性,所以在if語句中總是使用花括號是個好習慣。

if(n == 1){
    //程式碼1
}else if(n == 2){
    //程式碼2
}else if(n == 3){
    //程式碼3
}else{
    //其他程式碼
}

可以用if語句的巢狀形式來完成在語法上等價的程式碼,但沒有else if語句清晰

if(n == 1){
    //程式碼1
}else{
    if(n == 2){
        //程式碼2
    }else{
        if(n == 3){
            //程式碼3
        }else{
           //其他程式碼
        }
    }
}

switch語句

當所有的分支都依賴於同一個表示式的值時,else if並不是最佳解決方案。在這種情況下,重複計算多條if語句中的條件表示式是非常浪費的做法,而switch語句正適合處理這種情況。不一定為123,可以為ture,a等等,滿足哪個執行哪個。

//等價於
switch(n){
    case 1:
        //程式碼1
        break;
    case 2:
        //程式碼2
        break;
    case 3:
        //程式碼3
        break;
    default:
        //程式碼4
}

如果程式碼塊123相同可省略。

switch(n){
    case 1:
    case 2:
    case 3:
        //程式碼3
        break;
    default:
        //程式碼4
}

迴圈語句

條件語句把javascript中的程式碼變成一條條的分支路徑,而迴圈語句(looping statement)就是程式路徑的一個迴路,可以讓一部分程式碼重複執行。

3種迴圈語句:while、do/while、for。

while語句

滿足條件再執行迴圈體。

var count = 0;
while(count < 10){
    console.log(count);
    count++;
}

while(true)會建立一個死迴圈

do/while語句

先執行迴圈體,再判斷條件,也就是至少會執行迴圈主體一次。用分號結尾。

do{
    console.log(a[i]);
   }while(++i<len);

for語句

具有特定的計數器變數,計數器的三個關鍵操作是初始化、檢測和更新。

var count = 10;
var i;
for(i = 0; i < count; i++){
    console.log(i);
}
for(i = 0,j =10; i<10; i++,j--) sum+= i*j;可以改變多個變數。
for(;;)和for(i = 0; ; i++)是死迴圈。

跳轉語句

包括break、continue和return語句。

break語句

只有出現在迴圈語句或switch語句中才合法,出現在其他語句中會報錯。作用是立即退出最內層的迴圈或switch語句。

for(var i = 0; i < a.length; i++){
    if(a[i] == target) break;
}

continue語句

和break語句非常類似,但它不是退出迴圈,而是轉而執行下一次迴圈。

continue語句帶不帶標籤,它只能在迴圈體內使用。在其他地方使用將會報語法錯誤。

return語句

指定函式呼叫後的返回值,只能出現在函式體內,如果不是會報語法錯誤。當執行到return語句時,函式終止執行,並返回值給呼叫程式。

return x*y.