JavaScript學習筆記——變數,變數型別,運算子,語句—day one
目錄
一、瀏覽器
瀏覽器的組成: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.