js基本文法匯總

來源:互聯網
上載者:User

標籤:log   集合   函數傳回值   out   prompt   提示   entry   code   his   

      注意 轉載須保留原文連結(http://www.cnblogs.com/wzhiq896/p/6783296.html ) wangwen896 整理 1、分類
ECMAScript  js基本文法與標準DOM         Document Object Model文件物件模型BOM         Browser Object Model瀏覽器物件模型    tips:DOM和BOM都是一套API(Application programing interface)
2、注釋方式
style   /*  */body    <!-- --!>script  //        /* */        /**        *   js說明文檔注釋        */
3、簡單指令
alert("");          提示框;confirm("");        確認框,點擊後會響應返回true或false;             prompt();           彈出一個輸入框;document.write("");console.log("");    在控制台列印相應的資訊;console.dir("");    在控制台列印出該對象的所有資訊;
4、變數命名
數字(0-9)、字母(a-z,A-Z)、底線(_);    tips:應避免保留字和關鍵字;
5、NaN和isNaN
isNaN(number),如果number不是數字,則為true;Number(number),在轉換為數字類型時,若number不是數字,則返回NaN;
6、逸出字元
\       \r  斷行符號\n  空格\t  縮排\\  反斜線
7、邏輯短路、邏輯中斷
true || 6;      邏輯或短路,左邊為ture返回右值;6   &&  true;   邏輯與短路,左邊false返回右值;
8、優先順序
    * / %    +   -    &&    ||    ?tips:自上而下優先順序越來越高
9、類型轉換(type)
parseInt("12a3");   轉為數字,嘗試強轉;parseFloat("123.123");data.toString();String(data);    tips:變數聲明未賦值,其值為undefined;        對象為空白,其值為null;
10、三元運算式
eg  :   a>b?a=1:a=2;格式:    判斷條件?true的時候執行的操作:false的時候執行的操作;
11、數組Array
(1)、定義法    建構函式:            var arr = new Array("123","abc","xxx");    字面量:            var arr = ["123","646","abc"];     數組長度:            var arr = new Array(6);(數組長度為6);(2)、賦值    arr[0]=1;
12、形參和實參
定義函數時,function funcA(a,b,c){},其中的a、b、c即為形參;調用函數時,funcA(1,2,3);其中的1、2、3即為實參;tips:function裡面有一個arguments對象,裡面存有所有傳進函數的實參;
13、函數function
(1)、函數命名    1、  可以使用字元、數字、底線、$;    2、  不能以數字開頭;    3、  不能使用關鍵字和保留字;    4、  區分大小寫;    5、  建議要有意義 --  動詞+名字結構;    6、  駝峰命名法;    7、  函數名不能重名,後面寫的重名函數會把前面寫的函數給覆蓋掉;(2)、函數的傳回值傳回值:    當函數執行完畢之後,所得到的結果就是一個函數傳回值    任意函數都有傳回值1、  在函數內部沒有顯示的寫有return的時候,函數的傳回值是undefined;2、  當函數內部有return,但是return後面沒有跟著任何內容或者資料的時候,函數的傳回值是undefined,並且return後面的代碼不會執行;3、  當return後面跟著內容或者資料的時候,函數的傳回值就是這個跟著的內容或者資料;(3)、函數的四種形式:    1、沒有參數,沒有return;            通常在於封裝一段過程;    2、沒有參數,有return;            通常用於內部封裝引用其他函數(閉包,回調);    3、有參數,沒有return;            通常用於執行操作的封裝;    4、有參數,有return;            常見形式;(4)、匿名函數    匿名函數的name屬性值為anonymous;    函數僅用一次的情況,即用即廢;    eg:        setTimeout(function(){            console.log(this.name);        },1000);    tips:在1秒後在控制台列印出本函數的名稱;(5)、回呼函數    在一個函數當中,另一個函數作為參數傳入該函數中,另一個的這個函數即為回呼函數;    eg:        function atack(callback){            return callback;        }    tips:在調用該函數時,指定callback是哪個函數;        atack(func);(6)、短路運算    作用:防止傳入函數的資料不足,造成無法運行;    eg:        function getResult(a,b,fn) {            fn && fn();        }(通常使用邏輯與的短路來決定是否執行回呼函數;)        function getResult_2(a,b){            a || 0;        }(通常用邏輯或的短路來防止實參不足的情況,強行賦值;)(7)、自執行函數    (function func2(){    })()    tips:在函數定義的結束最後寫入一個(),該函數定義完成後直接被調用執行;(8)、遞迴    在函數執行的最後再一次的調用自身;    tips:遞迴是一種非常耗資源的做法,通常為了簡化運算,還會結合緩衝進行;    並且注意,遞迴必須要有結束判斷條件(if),否則該函數被調用後就是死迴圈;
14、資料類型
(1)、單一資料型別    string、number、boolean(2)、複雜資料類型    String、Number、Boolean、Array、Math、Date、Obeject、function、RegExp(Regex)(3)、空資料類型    * Null  ---→Null的資料類型會返回一個Object    * undifined    tips:用typeof可以進行判斷資料類型;    tips:定義的單一資料型別變數,其資料儲存在變數中;        而複雜資料類型,其變數儲存的是資料所在的記憶體位址;
15、內建對象
Array、Date、Math、String;
16、(Math)數學對象
向上取整        Math.ceil(number);向下取整        Math.floor(number);四捨五入        Math.round(number);求多個數字之間的最大值     Math.max();求多個數字之間的最小值     Math.min();求x的y次冪      Math.pow(x,y);求正弦值            Math.sin(x);    example:        求一個角度的正弦值,要求x必須是一個額弧度值        角度和弧度的轉換公式:            弧度 = 角度 * 2 * Math.PI / 360;        Math.sin(30*2*Math.PI/360)Math.abs(x);    得到一個數位絕對值
17、(Array)數組對象
(1)、arr1.concat(arr2);        數組拼接,結果為將arr2拼接到arr1的最後;(2)、arr.join();        數組字串輸出,括弧內可以指定元素串連的符號;        eg:            arr=["a","b","c","d"];            console.log(arr.join("|"));     (結果為"a|b|c|d")(3)、arr.pop();        切除數組的最後一個元素,傳回值為該元素;(4)、arr.slice(start,end)        擷取,擷取數組的指定片段,start必須有,如果參數為負數則從末尾開始選取;        傳回值為該片段組成的,一個新的數組;(5)、arr.push        添加,用於向數組的末尾添加新的元素,參數可以是多個;        傳回值為數組的新長度;(6)、arr.splice        1、用於向數組中指定的索引添加元素;            arr.splice(2, 0, "William","asdfasdf");                在第2個元素開始,刪除的元素個數(可以為0,為0到結尾),                加入元素為"William"、"asdfasdf";        2、用於替換數組中的元素;            arr.splice(2,1,"William");                  3、用於刪除數組中的元素;             arr.splice(2,2);(7)、arr.indexOf(element);        尋找,在數組中尋找element,傳回值為索引,如果沒有該元素返回-1;(8)、arr.sort(function);        排序,function為一個函數;            eg:                function sortNumber(a,b){                    return a-b;                }                arr.sort(sortNumber);(從小到大排序)    tips:如果a-b改成b-a,那麼執行的操作為從大到小;    tips:字串對象(String)的方法與Array的方法類似;
18、(Date)日期對象
date.getTime()date.getMilliseconds()date.getSeconds()date.getMinutes()date.getHours()date.getDay()date.getDate()date.getMonth()date.getFullYear()tips:很多,查文檔
19、(String)對象
charAt(index)str[index]          擷取字串指定位置的字元concat()        拼接字串---------------------------slice(start,end)/substring(start,end)    截取從start開始,end結束的字元,                返回一個新的字串,若start為負數,那麼從最後一個字元開始;substr(start,length)    截取從start開始,length長度的字元,得到一個新的的字串---------------------------indexOf(char)       擷取指定字元第一次在字串中的位置lastIndexOf(char)   擷取指定字元最後一次出現在字串中的位置trim()      去除字串前後的空白---------------------------toUpperCase()toLocaleUpperCase()     轉換為大寫toLowerCase()toLocaleLowerCawse()    轉換為小寫---------------------------replace()       替換字元split()         分割字串為數組
20、自訂對象
對象:無序屬性的集合;    特徵:屬性(key);    行為:方法(value);js是基於對象的弱類型語言;繼承:基於類,子類可以從父類得到的特徵;    原廠模式:定義一個function建構函式,作為對象,要建立對象直接調用該建構函式,加new關鍵字;建構函式:定義對象的函數,裡面存有該對象擁有的基本屬性和方法;    命名首字母大寫,this會自動指代當前對象;訪問對象屬性:    obj[key];    obj.key;遍曆對象:    for(key in obj){        key         為屬性名稱;        obj[key]    為屬性值(value);    }
21、JSON
{   "name" : "李狗蛋",   "age" : 18,   "color" : "yellow"}1、  所有的屬性名稱,必須使用雙引號包起來;2、  字面量側重的描述對象,JSON側重於資料轉送;3、  JSON不支援undefined;4、  JSON不是對象,從伺服器發來的json一般是字串,通過JSON.parse(jsonDate.json)可以將其轉換成js對象;
22、JS解析
(1)、範圍全域範圍:整個代碼所有地方都可以調用;局部範圍:在函數內部聲明的變數,只可以在函數內部使用;(2)、變數提升和函數提升預解析:在解析的時候,var和function都會被提升到代碼的最頂端;    但是賦值操作不會被提升,定義和函數才會被提升;    if裡面的變數定義也會被提升,但是賦值操作不會;
23、其他細節(tips)
(1)、元素由對象組成的數組進行排序    eg:        var data = [            {title: "老司機", count: 20},            {title: "詩人", count: 5},            {title: "歌手", count: 10},            {title: "隔壁老王", count: 30},            {title: "水手", count: 7},            {title: "葫蘆娃", count: 6},        ];            //該數組的元素都為對象。我們需求為根據count的值給數組重新排序。            //解決方案:使用sort方法,對傳入的函數做手腳。        function sortArr(a,b){            return a.count > b.count;           }        data.sort(sortArr);            //原本的a和b的比較方法變成a.count和b.count;            //原本的比較方法可以參見17,數組對象            //至此,data將以count值從小到大排列。    tips:Array對象的sort方法傳入的為比較函數,比較函數裡return排序比較的方法;        原始的sort方法傳入的函數內部return的值為a>b,        通過修改sort傳入的函數,可以實現對元素為對象的數組的排序!

js基本文法匯總

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.