JavaScript基礎語法

【使用JS的三種方式】
   一、在html標籤中,直接使用JS(並不提倡使用):
   栗子:<button onclick="alert('我好啊')">點本寶寶</button>
   不符合內容與行爲分離的要求!
   
   二、在html頁面中使用<script></script>包裹JS代碼:
   栗子:<script type="text/javascript">
      JS代碼;
        </script>
   script標籤能夠放到頁面的任何位置。
   
   三、引入外部的JS文件
   <script language="JavaScript" src="JS/01.js" ></script>
   
   【注意事項】
   一、<script></script>能夠嵌入頁面的任意位置。可是,位置的不一樣會致使JS代碼的執行順序不一樣;
   好比:<script></script>放到<body></body>前面,則JS代碼會在頁面加載以前執行。
   二、引入外部的JS,<script></script>必須是成對出現的標籤。並且,標籤中不能有任何JS代碼。
   
   JS中多行註釋。ctrl+shift+/
   JS中單行註釋。ctrl+/javascript


   【JS中變量】
   一、JS中變量申明的寫法:
      var num=1;//使用var申明的變量,屬於局部變量,只在當前做用域有效;
      num=1;//不用var申明的變量,默認爲全局變量,在整個JS文件中有效。
      var x=1,y=2,z=1;//使用一行語句申明多個變量,下式中,x,y屬於以申明,可是未賦值狀態,結果爲undefined;
      var x,y,z=1;
      alert(x);
      alert(y);
      alert(z);html


   【申明變量注意事項】
   一、JS中全部變量的申明,均使用var關鍵字,變量具體是什麼數據類型,取決於給變量賦值的類型。
   二、同一個變量,能夠在屢次不一樣賦值時,修改變量的數據類型;
   var a=1;//從初始申明,a屬於整形
    a="chuanchuan";//重複賦值時,整數型的a被修改成字符串型類型;
   三、變量可使用var申明,也能夠不實用var申明。
   【區別】使用var申明爲局部變量,不使用var申明爲全局變量;
   四、只用var申明,可是不賦值,結果爲undefined;
   例如:var a;//a爲undefined。
   可是,若是不申明也不賦值a,直接使用會報錯。
   五、同一變量名能夠屢次使用,可是後面的var並無用,第二次使用var申明時,只會被理解爲普通的賦值操做。
   
 【變量名的命名要求】
      一、只能有字母,下劃線,數字組成;
      二、開頭不能是數字;
      三、變量名區分大小寫,大寫字母與小寫字母爲不一樣變量;java


 【變量名的命名規範】
  一、要符合小駝峯法則:首字母小寫以後每一個單詞的首字母大寫。
      例如:myNameIsChuanChuan
   二、或者使用匈牙利名命法
   my_name_is_chuan_chuan
   三、mynameischuanchuan  能用,可是不規範
   
   【JS數據類型】
       一、Undefined:未定義。已經使用var神明的變量,可是沒有賦值的狀況。如:var a;
       二、Null:空引用。
       三、Boolean:布爾類型。表示真假,只有兩個值,true和flase
       四、Nnumber:數值類型,能夠是整數,也能夠是小數
       五、String:字符串類型,用""或''包裹的內容,稱爲字符串
       六、Object:對象類型,
       
   【經常使用的數值函數】
       一、isNaN():判斷一個變量或常量是否是NaN(not a number 非數值);
           使用NaN()判斷時,會嘗試使用Number()函數進行轉換,若是最終結果可以轉換爲數字,則不是NaN,結果爲false。
   
    二、Number()函數:將其餘類型的數據,嘗試轉爲數值型。
    [字符串類型]
    字符串爲純數值字符串,會轉爲對應數字;例如:"111"->111
    字符串爲空字符串,會轉爲0;例如:""->0
    字符串包含任何其餘字符串時,都不能轉;例如:"1a"->NaN
   [boolean類型]
   true->1     flase->0
   【Null/Undefined】
   Null->0     Undefined->NaN
   
   parseInt():將字符串轉爲整數類型;
   純數值字符串,能轉。
   "12"->12;  "12.9"->12(小數轉換時,直接抹掉小數點,不能進行四捨五入)
   空字符串,不能轉。""->NaN
   包含其餘字符串,會截取第一個非數值字符串前的數字部分
   "123a456"->123;   "a123b456"->NaN
   parseInt()只能轉字符串。轉其餘類型,全是NaN。
   
   【Number函數與ParseInt函數的區別】
   一、Number函數能夠轉各類數據類型,ParseInt函數只能轉字符串
   二、二者在轉字符串時,結果不徹底相同。(詳解見上面解釋)
   
   parseFloat:將字符串轉爲數值型;
   轉換規則與ParsenInt相同,只是若是有小數,則保留小數點;若是沒有小數,則依然是整數;
   "12.5"->12.5;   "12"->12
   
   typeof:檢測變量的數據類型:
   字符串->String        數值->Number     未定義->Undefined
   true/false->Boolean   函數->function   對象/Null->object   
   
   【JS中經常使用的輸入輸出語句】
   一、document.write();將括號中內容打印輸出到瀏覽器屏幕上;
   使用時需注意:除變量,常量外全部內容,必須放到""中,變量和常量必須放到""外面;
   若是同時又變量和字符串,必須用+連接
   例如:document.write("左手中的紙牌:"+left+"<br/>");
   二、alert();使用彈窗輸出;
   彈窗警告,()中的內容與上述要求相同。
   三、prompt();彈窗輸入
   接受兩部分參數:
   ①輸入框上面的提示內容,可選;
   ②輸入框裏面的默認信息,可選;
   當只寫一部分時,表示輸入的內容。點擊肯定按鈕,變量被賦值爲輸入內容;點擊取消按鈕,變量將被賦值爲null;
   輸入內容時,默認接收的數據類型都是    字符串!
   例如:var num1 = prompt("請輸入第一個數:"); 
   var num2 = prompt("請輸入第二個數:"); 
   var sum  = parseFloat(num1)+parseFloat(num2);
   alert("結果是:"+sum);瀏覽器

【算術運算】
       + 、-、*、 /、 %、++ 、--
      +:有兩種做用,連接字符串/加法運算。當+兩邊全爲數字時,進行加法運算;當+兩邊任意一邊爲字符串時,
       起連接字符串做用,連接做用,連接以後結果爲字符串。
       除+外,其他符號運算時,會將左右變量用Number函數轉爲數字。
      
      /:結果保留小數點。
      ++:自增運算符,將  變量  在原有基礎上+1。
      --:自減運算符,將  變量  在原有基礎上-1。
     
      【a++和++a異同】
      一、相同點:不管a++仍是++a,運算完後,a的值均會+1;
      二、不一樣點:a++,先用a的值去運算,再把a+1;
           ++a,再把a+1,再用a的值去運算;
     
   【賦值運算】
       =  +=  -=  *=  /=  %=
       +=:a+=b;至關於a=a+b;可是前者運算效率比較快,推薦+=的寫法。
      
   【關係運算】
       ==、  !=、>、<、>=、<=
         關係運算符運算以後的結果,只能是Boolean類型;
         判斷一個數字是否處於某個區間,必須用&&連接;
         例如:a<10 && a>0
      ===:嚴格等於,要求不但類型相同,值也必須形同。
      ==:等於,類型相同與===效果同樣,類型不一樣時,會嘗試用Number將兩邊轉數字,而後再判斷。
         可是,有個別特例,如:Null==false ×    Null==Undefined  √  Null==Null  ×
     
   【條件運算符(多目運算)】
       a>b?true:false 
         當?前面運算結果爲true時,執行:前面的代碼
         當?後面運算結果爲true時,執行:後面的代碼
         冒號兩邊爲數值,則整個式子可用於賦值。var a =1<2?1:2;
         冒號兩邊爲數值,將直接執行代碼。1<2 ? alert(1):alert(2);
         多目運算符能夠多層嵌套。var a =1<2?alert(1):(1>0?4:5);
      
   【位運算符、 邏輯運算符】
        &&、||、!
      && 兩邊都成立,結果爲true
      || 兩邊有任意一邊成立,結果爲true
      && ||同時存在時,&&的優先級比||高
      
   【運算符的優先級】
       一、()
       二、! ++  --  單目運算符
       三、*  /  %
       四、>  <  >=  <=
       五、==  !=
       六、&&    注意:&& ||同時存在時,&&的優先級比||高
       七、||
       八、=  += -=  *=  /=函數

【if-else結構】
   一、結構的寫法:
   if(判斷條件){
    條件爲true,執行if{}
   }else{
    條件爲false,執行if{}
   }
   二、注意事項:
   else{}語句塊。能夠根據狀況進行省略。
   if和else後面的{}能夠省略,可是省略{},if和else後面只能跟一條語句;(因此不建議省略{})
  
   三、if的()中的判斷條件,支持的狀況:
   Boolean:true爲真,false爲假
   string:空字符串爲假,全部非空字符串爲真。
   Number:0爲假。全部非0數字爲真。
   Null/Undefined/NaN:全爲假。
   Object:全爲真。
  
   【多重if、階梯if結構】
   一、結構寫法:
   if(if條件一){
    條件一成立,執行操做
   }else if(條件二){
    條件一不成立&&條件二成立,執行的操做
   }else{
    上條件都不成立,執行的操做
   }
   二、多重if結構中,各個判斷條件是互斥的,執行選擇其中一條路執行,
   遇到正確選項並執行完之後,直接跳出結構,再也不判斷後續分支
  
   【嵌套if結構】
   一、結構寫法:
   if(條件一){
    條件成立
    if(條件二){
     條件一成立&&條件二成立
    }else{
     條件一成立&&條件二不成立
    }
   }else{
    條件一不成立
   }
   二、在嵌套if結構中,若是省略{},則else結構永遠屬於離他最近的if;
   三、嵌套結構能夠多層嵌套,可是通常不推薦超過三層
    能用多重if結構通常不推薦使用多重if結構。
    
  【switch多路分支結構】
  【工做原理】首先設置表達式 n(一般是一個變量)。隨後表達式的值會與結構中的每一個 case 的值作比較。
  若是存在匹配,則與該 case 關聯的代碼塊會被執行。請使用 break 來阻止代碼自動地向下一個 case 運行。
  一、結構寫法:switch(表達式){
      case (能夠是表達式):
       執行代碼塊 1
      break;
      case 2:
       執行代碼塊 2
      break;
      case 3:
       執行代碼塊 3
      break;
      default:
      break;
     }
  二、switch結構()中的表達式能夠是各類JS支持的數據類型;
  三、switch結構在進行判斷時,使用==判斷;
  四、case後面的表達式能夠是各類數據類型,能夠是表達式,可是值要求各不相同,不然也只會執行第一個case。
  五、break跳出當前當前switch結構;缺乏break後果  從第一個正確的case項開始,執行後面的全部case和default;
  緣由:switch結構進行判斷的時候,只會判斷一次正確答案。當遇到正確case以後,將不會再判斷後續的項目。
  六、 switch執行效率要比多重if快。在多路分支中,推薦優先使用。htm

相關文章
相關標籤/搜索