一、JS的變數 1.變數的聲明 2.使用一行代碼強調多個語句。其中b為undefined; 3.JS中變數聲明的註意事項。 ①JS中聲明變數的關鍵字只有var一個,變數的類型取決於所附的值。 如果聲明時未賦值,則返回undefined類型(聲明之後沒有賦值的變數,不是未聲明)。②JS中同一個變數,可 ...
一、JS的變數
1.變數的聲明
var num=1;//使用var生命的變數屬於局部變數,只在當前作用與有效。在方法外部可以運行。
//可以不用聲明變數,直接賦值。 num="hahahah";//不用var聲明的變數,預設是全局變數,在整個JS文件中使用
function func () { // var num=1;//1.使用var定義的變數是方法裡面的,不能列印 num3=10; } func(); // alert(num);//1.不能運行 alert(num3);
2.使用一行代碼強調多個語句。其中b為undefined;
var a=1,b,c="nu"; alert(a); alert(b);
3.JS中變數聲明的註意事項。
①JS中聲明變數的關鍵字只有var一個,變數的類型取決於所附的值。
如果聲明時未賦值,則返回undefined類型(聲明之後沒有賦值的變數,不是未聲明)。
②JS中同一個變數,可以在多次賦值中,被修改數據類型。
var num=1; num="hahahah ";
③變數可以使用var聲明,也可以直接聲明
【區別】使用var聲明的作用域為局部變數。
④在JS中,一個變數可以多次使用var聲明,後面的聲明相當於直接賦值,沒有任何用處。
⑤JS變數區分大小寫,大寫和小寫不是一個變數。
1.JS中的數據類型。
①Undefined:使用var聲明,但是沒有賦值的變數。
②null:表示空的引用。
③Boolean:真假。
④Number:數值類型:包括整形和浮點型。
⑤Object:對象(函數數組統稱為對象)。
⑥String:字元串。
2.常用數值函數。
①isNaN用於檢測一個變數,是不是一個非數值(Not a Number)
isNaN在檢測時,會先調用Number函數,嘗試將變數轉為數值類型,如果最終結果能轉為數值時,則不是NaN。
②Number函數:用於將各種函數數據類型轉為數值類型。
》》》Undefined:無法轉換,返回NaN。
》》》null:轉為0;
》》》Boolean:true轉為1,false轉為0;
》》》字元串:
如果字元串是純數值字元串,則可以轉換。“123”->123
如果字元串包含非數值字元,則不能轉換。"123a"->NaN
如果是空字元串轉為0.""--->0 " "--->0
③parseInt():將字元串轉為數值類型。
》》》如果是空字元串,不能轉,返回結果是NaN。
》》》如果是純數值類型字元串,可以轉換,且小數點直接刪去,不保留。
"123"--->>123 "123.9"--->>123
》》》如果字元串包含非數值字元,則將非數值字元前面的整數進行轉換。
"123a"--->123 "a123"-->>NaN
④parseInt():轉換機制與parseInt()相同。
不同的是:轉換數值字元串時,如果字元串是小數則可以保留小數。
"123.5"-->>123.5 "123"-->>123
⑤typeof:檢測一個變數的數據類型。
字元串-->String 數值-->number true/false-->boolean
未定義-->Undefined 對象/null-->object 函數-->function
var num=1; alert(isNaN(num));//false var num="1"; alert(isNaN(num));//false var num="a1"; alert(isNaN(num));//true var num="1a"; alert(isNaN(num));//true var num="a1"; alert(Number(null));//0 var num="a1"; alert(Number(undefined));//NaN var num="a1"; alert(Number(Boolean));//NaN
var num=""; alert(num);//返回空 var num="123.9"; alert(num);//123.9 var num="123.9"; alert(Number(num));//123.9
var num="123.9"; alert(parseInt(num));//123 alert(Number(undefined));//NaN alert(Number(null));//0 alert(Number(true));//1 alert(Number("123"));//123 alert(Number("123a"));//NaN alert(Number(""));//0 alert(parseInt("123.5"));//23 alert(parseInt(123.5));//123 alert(parseInt("123"));//123 alert(parseInt("123a"));//123 alert(parseInt("a123"));//NaN alert(typeof("123.5"));//string alert(typeof(123));//number alert(typeof(true));//boolean alert(typeof(undefined));//undefined alert(typeof(null));//object function func () { num3=10; } alert(typeof(func()));//undefined alert(typeof(func));
3.JS中常用的輸入輸出語句。
①.alert():彈窗輸出
②.prompt();彈窗輸入,接收兩部分參數。①輸入提示內容②輸入框的預設文本。(兩部分都可以省略)
輸入的內容預設都是字元串。
③.document.write();在瀏覽器屏幕上面列印。
④.console.log();瀏覽器控制台列印。
var str =prompt("請輸入一句話","你真帥");//兩塊都可以省略//框里顯示你真帥 alert(str);//你真帥 alert(typeof(str));//類型string
var str =prompt("請輸入一個數"); var str1 =prompt("請輸入一個數");//4+5=9 alert(parseInt(str)+parseInt(str1));
4.JS中的運算符。
①除號:無論符號兩邊是整數還是小數,除完之後都將按照實際結果保留小數。
22/10=2.2
++ -- + - = += *= /= %= == != 和java一樣。
②"===":要求等式兩邊的數據,類型和數值必須相同,如果類型不同,直接返回false。
"==":值判斷兩邊的數據,值是否相同,並不關心等式兩邊是否是同一種類型。
!=:不等。 !==:不全等。
③& |只能進行按位運算,如果兩邊不是數值類型,將轉為數值運算。
&& ||進行邏輯運算。
^相等時為0,不等為1。
console.log(22/10);//2.2 console.log(10/3);//3.3333333333333335 console.log(12.0/6);//2
var j=0; var c=0; for(var i=0;i<100;i++){ c=j++; } console.log(c);//99 var j=0; for(var i=0;i<100;i++){ j=j++; } console.log(j);//0 var j=0; for(var i=0;i<100;i++){ j=++j; } console.log(j);//100
console.log(1=="1a");//false console.log(1=="1");//true console.log(1==="1");//false(必須是同一種類型===)
console.log(undefined==null);//true conole.log(undefined===null);//false console.log(NaN===NaN);//false console.log("1"!==1);//false console.log("1"!=1);//true console.log(true&12);//0三、JS的分支與迴圈
1.JS中的真假判斷。
①Boolean類型:true為真,false為假。
②數值類型:0為假,非0為真。
③字元串類型:""為假,非空字元串為真。
④null/undefined/NaN:全為假。
⑤Object:全為真。
if(0.0){ console.log(true); }else{ console.log(false); }//0為假,其他為真 if(""){ console.log(true); }else{ console.log(false); }//""為假,其他為真 if(undefined){ console.log(true); }else{ console.log(false); }//假
2.switch結構的()可以放各種數據類型;比對時,採用"==="進行判斷,要求數據類型完全相等。
var num=1; switch(num){ case "1": console.log("等"); break; default: console.log("不等"); break; }//不等 var num=1; switch(true){ case num>=0&&num<10: console.log(1); break; case num>=10&&num<20: console.log(2); break; default: console.log(3); break; }//1
3.練習:
輸入一個數,若是正整數返回該數倒轉換的數,如果不是正整數則重新輸入。
var s=true; while(s){ var s=prompt("請輸入一個數");//輸入非正整數,提示: var str='';//您輸入的不是正整數,重新“請輸入一個數” if(parseInt(s)==s){//輸入正整數,如:12345,返回54321 while(s>0){ var a=s%10; str+=a; s=parseInt(s/10); } console.log(str); s=false; }else{ console.log("您輸入的不是正整數"); s=true; } }四、JS中函數的聲明與調用
1.函數聲明的格式。
function 函數名(參數一,參數二){ //函數體代碼 return 返回值; }
2.函數調用:
①直接調用:函數名(參數一,參數二);
②通過事件調用,在HTML標簽中,通過時間屬性進行調用。
3.函數聲明與調用的註意事項:
①函數中有沒有返回值只取決於函數中有沒有return,無需可以聲明。
在JS中有返回值可以不接收,沒有返回值也可以接收,結果為undefined。
②JS中函數的形參列表與實參列表沒有任何關聯。
即,有參數可以不賦值,沒有參數也可以賦值,未賦值的參數為undefined。
函數的實際參數個數,取決於實參列表。
③JS中函數是變數的唯一作用域。
那麼函數的形參是屬於函數的局部變數。
④函數的聲明與調用語句,沒有先後之分,即,可以先寫調用語句,在聲明函數。
func(); function func(){}
4.匿名函數的聲明與使用。
①匿名函數表達式:
var func=function(){};
調用func();
註意:函數的調用語句必須放在聲明語句之後!!!
②直接將匿名函數賦值給一個事件:
window.onload=function(){}//文檔就緒函數,確保函數中代碼,在HTML文檔中載入完成之後執行!
document.getlementById("id").onclick=function(){}
③自執行函數:
《《《!function(){}();//開頭用!表明這是自執行函數。推薦。
《《《(function(){}());//用()將匿名函數聲明與調用包裹在一起。推薦。
《《《(function(){})();//用()將匿名函數聲明語句進行包裹。
!function(){//one alert(123); }();//123 (function(){//two alert(123); }());//123 (function(){//three alert(123); })();//123
var func=function(){ alert(123); } func();//不能把func();調用放在上面(匿名函數)//123
5.JS代碼的執行順序。
JS代碼的執行分為兩個階段:檢查編譯階段,代碼執行階段。
檢查編譯階段:主要檢查語法錯誤,變數的聲明,函數的聲明等聲明操作。
代碼執行階段:變數的賦值、函數的調用等執行語句,屬於代碼執行階段。
//檢查編譯階段:執行操作 var num; function fun(){} var func2
//代碼執行階段:執行操作 console.log(num); var num=1; func(); func2(); var func2=function(){} console.log(func2());