web基礎-JavaScript

來源:互聯網
上載者:User

標籤:xxx   先行編譯   遍曆   流程   ber   表達   rip   進階   c語言   

                                              JavaScript
  JS為網頁添加功能:
    1、頁面的動態效果:輸入的驗證、頁面元素的動態顯示等
     JavaScript寫在html頁面上,由瀏覽器來運行
    2、伺服器的互動:資料的交換--jsp、ajax
     jquery--封裝好js方法
一、概述
  1、什麼是Javascript?
      網頁編程技術,用來向HTML頁面添加互動行為
      JS是一種基於對象和事件驅動的解釋性指令碼語言,具有與java和C語言相類似的文法
      特點:直接嵌入HTML頁面;由瀏覽器解釋執行代碼,不進行先行編譯
      功能:用於用戶端資料的計算
         用戶端表單的合法驗證
         瀏覽器事件的觸發
         網頁特殊顯示效果製作
  2、發展史
      JavaScript正是名稱是ECMAScript,此標準由ECMA組織發展和維護
      ECMA-262是正式的JavaScript
      此標準基於JavaScript(Netscape)和JScript(Microsoft)
      -網景公司在Netscape2.0首先推出了JavaScript
      -微軟公司在IE3.0開始提供對用戶端JavaScript的支援,並取名為JScript
二、基礎文法
  1、寫法:
    <1>在元素內部和事件綁定在一起<input type="button" value="按鈕" onclick="alert(‘hello java‘)">
    <2>在head標籤中封裝在<script language="javascript"><script>中,加語言是告知瀏覽器 如果不寫則使用瀏覽器預設設定的方式
    <3>封裝在JS檔案中 調用時<script language="javascript" src="MyScript.js"><script> 註:W3C推薦使用type=text/javascrpt
  2、錯誤查看方式:FireFox錯誤控制台
    注意:單行注釋//多行注釋/* */;語句由運算式、關鍵字、運算子組成;大小寫敏感;分號結束
  3、變數
    <1>變數的聲明:var x=0;var y="hello";var z="true" 變數在聲明時不確定資料類型,賦值時確定資料類型 js是一種弱類型的程式設計語言
  4、資料類型
    <1>基本類型:number/String/Boolean
          String:由Unnicode字元、數字、標點組成的序列
          由單引號或雙引號括起--兩種都可以使用,但如果外層是雙引號,內層就用單引號因為便於區分
          特殊字元需要轉義符\,如\n,\\,\‘,\"
          怎麼表示漢字的範圍只能是中文則必須用Unicode:[\u4e00-\u9fa5]
          Number:不區分整型和浮點型數值
          所有的數字都採用64位浮點格式儲存,類似於double格式
        a、整型
            10進位的整數由數位序列組成
            16進位資料前面加上0X,八進位前面加0
        b、浮點型
            使用小數點記錄資料:3.4
            使用科學計數法記錄資料:4.3e23
        C、boolean:多用於控制語句
      資料類型的轉換:
          隱式轉換:直接轉--預設規則
          規則:Number+String=String
             Number+Boolan=String true變1 false變2 運算
             Boolean+String=String true/false轉變為字串類型的true/false
             Boolean+Boolean=Number 值為數字0/1
          顯式轉換:利用轉換的函數方法--當有確定的計算要求
          規則:a、toString
             b、parseInt()
             c、parseFloat()
               預設從控制台輸入的資料類型為字串類型
             d、isNaN()--判斷是不是一個數字 很常用
          typeof:判斷資料的類型
    <2>特殊類型:Null--空/Undefine--未定義
    <3>複雜類型
  5、運算子:算術、邏輯、關係...
    <1>關係運算子 注意===嚴格相等和==的區別
            ===是指值和類型都相等
  6、流程式控制制:
三、常用內建對象
   什麼是js對象?
        js是一種基於對象的語言
        對象是js中最重要的元素
        js中包含多種對象:內建對象、自訂對象、瀏覽器對象、HTML DOM對象、Active對象
  1、簡單資料對象
      String:
        <1>建立字串對象:var str1="hello world";var str2=new String("hello world");
        <2>String對象的屬性:length alert(str1.length);
        <3>String對象的方法:
            toLowerCase()/toUpperCase() 大小寫轉換
            indexOf()/lastIndexOf() 找某個子字元的位置--從前往後找/找某個字元的位置--從後往前找
            subString(star,end) 截取字串,不含end本身位置
            charAt(index) 返回指定下標的字串
            charCodeAt(index) 返回字串unicode編碼
            replace(原字元,新字元) 只能替換一次
            split() 拆分字串 返回一個數組
             操作:類比過濾敏感字元

            function replaceString(){                  //先擷取字串            var str1=document.getElementById("txtString").value                var index=str1.indexOf("js");//設定初始值            while(index>-1){//如果有敏感字元                str1=str1.replace("js","*");//找到了將敏感字元替換掉                index=str1.indexOf("js");//在新的字串中繼續找是否存在有敏感字元js,相當於迭代操作                  }            document.getElementById("txtString").value=str1                }

 


            過濾敏感字元的方法:<input type="text" onblur="replaceString()" id="txtString" />
       Number:基本類型資料的封裝對象
            方法:toString():數值轉換為字串
            tofixed():數值轉換為字串,參數為指定保留的小數位元,四捨五入,不滿足保留位元,補0
            如var data=53.2-->data.toFixed(2)-->53.20 常用於小數的格式化
       Boolean:
  2、組合對象
      Array:1列多個資料 js中沒有集合只有數組 不需要聲明初始長度直接用
        <1>寫法:
          方式一 ar arr=new Array();//先聲明 未初始化
          arr[0]="marry" arr[1]=true
          方式二 var arr=new Array("mary",10,true)聲明+初始化
          方式三 var arr=["mary",10,true] 簡寫 省略new Array
          <2>屬性:length擷取元素個數/數組長度
        <3>數組方法:
          arr.toString()---用於遍曆數組,輸出數組 如10,20,21..預設是用逗號隔開的 注意是無參的
          arr.join("*") ---指定分割符*輸出數組10*20*30
          arr.concat(value1,value2,...) 拼接數組 在原數組後面串連 得到新數組 原數組值不發生改變
          arr.slice(start,end)--擷取子數組/截取數組 不含end位置的數組
          arr.reverse()--數組的反轉
          arr.sort()--排序 預設是按字元順序排序
            如果要實現按數值排序則要自訂個方法:
              function arrayFunc(a,b){
                return a-b;
               }
          array.sort(arrayFunc)將方法對象當做參數傳入
      Math:數學計算相關的--不用建立對象 直接使用 類似於靜態對象
        <1>常用屬性:都是數學常數
              Math.E--自然數
              Math.PI--圓周率
              Math.LN2(in2)
              Math.LN10(in10)...
        <2>方法(瞭解)
              三角函數 Math.sin(x) Math.cos(x)...
              反三角函數 Math.asin(x) Math.acos(x)..
              計算函數 Math.sqrt(x) Math.log(x)..
              數值比較函數 Math.abs(x) Math.max(x,yxz..)...
              注意其中的:Math.random()--0<=Math.random()<1 小數
              Math.floor()--返回一個小於或等於指定數位整數,也就是說往下取
              Math.ceil()--正好相反 往上取整
              案列:求3-9之間的隨機整數 var s=(Math.random())*6+3--> Math.floor(s)
              可以應用在網頁上某也圖片的隨機出現的位置,座標產生隨機數
      Date:對象
        <1>建立對象:
              var d=new Date();//當前日期和時間
              var d=new Date(2013/01/01 12:12:12);//固定日期和時間
        <2>方 法:
            分類:getxxx
                 getDay/getDate/getMonth/getFullYear...
               setxxx
                 setDay/setDate...
               toxxx--得到字串格式的表示方法 常用於頁面顯示
                  toString
  3、進階對象:
      Function:函數(方法)是一組可以隨時隨地的啟動並執行語句 function對象可以表示開發人員的任何函數 函數實際上是功能完整的對象
      定義:略
      調用:
      Arguments對象:
        a、js中沒有傳統意義上的重載(方法名相同,參數列表不同),如果方法名稱相同,則以最後一次定義為標準
        b、js如果要實作類別似重載的效果使用關鍵字arguments 代表當前被傳入的參數,組成了一個數組
            function m(){alert(arguments[0])}
  

    //方法的重載:        function testMethod(){        if(arguments.length==1){        var data=arguments[0];          alert(data*data);          }        else if(arguments.length==2){          alert(arguments[0]+arguments[1]);        }      }

 


        建立方法:
          方式一:function關鍵字function s(參數){方法體}--推薦
            用於跟功能相關的方法
          方式二: var f =new Function("a","b","alert(a+b);");--不推薦使用
            最後一個參數是方法體,前面的其他參數是是方法的參數
          存在的需求:有些方法不需要顯式存在,只是為其他方法單獨使用
 

       function arraySort(){          var array=[12,34,56,11,7];          var f=new Function("a","b","return a-b;")//專門用於按數值排序所用              array.sort(f);              alert(array.toString());        }

 


         

        //方式三:

        var f =new Function(a,b){        return a-b;//使用匿名函數          }

 


        全域函數:所有的JS對象都可以使用
           parseInt/parseFloat/isNaN...
           encodeURI():把字串作為URI進行編碼
           decodeURI():對encodeURI()函數編碼過的URI進行解碼
           eval:計算 var s1="1+3*5";var r =eval(s1);alert(r);//16
              計算某個字串,以得到結果;或者執行其中的js代碼

 

      RegExp:純文字的運算式,表示某種匹配模式 在不同的語言環境下,執行後者使用Regex,實現文本的各種處理
            eplace(原字元,新字元);
            match()--得到匹配的結果 用數組存
            search()--得到匹配的下標 可以判斷是否有敏感字元
            匹配模式:g--global 全域
            m--multilin 多行
            i--ignorance 忽略大小寫
          實際應用:str1=str1.replace(/js/gi,"*") //全域替換 忽略大小寫
             str1=str1.replace(/\d/g,"*") //\d表示一個數字如果表示1個或多個數字則用/\d+/
          Regex的應用分為兩類:
            一類:和String對象的三個方法結合使用,實現對String的操作

            二類:Regex對象
                var r =/\d{6}/ --6位小數
                var s=/^[a-z]{3,5}$/ 意思是a-z 3-5位 從開始到結束進行匹配
                  r.test(String)--true/false 意思是指定範圍是否與錄入的資料匹配 --特別適合輸入驗證
                  驗證漢字:/^[\u4e00-\u9fa5]{3}$/ 3個漢字

四、應用(重要)
   DHML--動態效果 比如瀏覽器瀏覽資訊、螢幕資訊等
   將整個視窗均實現對象化,結構如下:  
              window 父物件
              document---html
              screen
              history
              location
              event
              navigator
  1、window對象:
      <1>開啟對話方塊視窗alert();是一種阻塞線程的方法 window.alert("你好");
          window.confirm("請確認")--確認詢問視窗 資訊氣球--返回boolean
          瞭解window.prompt("請輸入:")--彈出一個輸入的文字框 很少使用 無法對文字框的樣式修改、控制
      <2>開啟新視窗:一個參數 window.open(url);--window.open("http://www.baidu.com");重複開啟
          兩個參數 window.open(url,"windowName")給視窗取了名字 再次點擊就不會重複開啟了
          三個參數 window.open(url,"windowName",conf)最後一個參數為瀏覽器外觀設定 如寬高等...


 

web基礎-JavaScript

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.