javaScript知識點梳理

一、JS中的六種數據類型:boolean,string,number,null,undefined。javascript

二、 css

 var one; 
 var two=null; 
 console.log(one==two,one ===two);    //true,false

  one==two是loose comparison,比較的是值;one===two是strict comparison,既比較值,又比較類型。即html

                  == equality 等同,=== identity 恆等

  one的值是undefined,two的值爲null。js中undefined的值派生自null值,因此規定undefined==nulljava

三、盒子模型。詳情按F12。angularjs

四、angularjs中的自定義服務有factory,service,provider。ajax

五、JS中定義的函數會優先解析,而不是順序解析(同步模式),而且若方法同名,後者會覆蓋前者。windows

六、代碼從上往下的一次執行,這種模式稱之爲同步。一部分先執行;另外一部分在將來執行的模式稱之爲異步,如:ajax的post請求的callback回調函數。數組

七、Array數組對象:promise

        將已知的arr數組複製給新數組 : var a = arr.slice(0);瀏覽器

八、

1 var obj={「key」:「1」,「value」:「2」};
2 var newObj = obj;   //至關於兩個對象指向同一個地址,
                                //修改其中任何一個,另外一個也會受到影響

九、$(emit)是向上冒泡   ; $broadcast()是向下傳播事件

十、NOSCRIPT標籤用來定義在腳本未被執行時的替代內容

十一、

1 //已定義好一個checkState函數
2 windows.setTimeout(checkState(), 10000);  //當即被調用
3 windows.setTimeout(checkState, 10000);  //10s後被調用
4 windows.setTimeout(「checkState()」, 10000);  //10s後被調用,帶引號的

十二、

1 console.log( 1+ "2" + "2");   //字符串相加等於字符串的合併,結果122
2 console.log( 1+ + "2" + "2");   //第一個+「2」中的加號是一元加操做符,會自動轉成數值2,結果32                   
3 console.log( "A"- "B" + 2);//"A"- "B"先用Number將函數轉換爲數值,結果爲NaN,在算數運算中有一個爲NaN,則結果仍爲NaN,結果NaN
4 console.log( "A"- "B" + "2");    //接上,合併後結果爲NaN2

1三、Number()函數會將對象的值轉換爲數字,null; empty ;0;默認都會轉換成0

1四、javaScript是弱類型語言,會根據後面的語言進行轉換

1 var a = 「40」, b =72 console.log(a%b);   //5

1五、

1 var obj = new Boolean('false');  //返回的是對象
2 var flag = Boolean(0);   //返回布爾值False

1六、

1 $post(url)是ajax請求;
2 ajax的事件是:ajaxComplete(callback)  ;
3                      ajaxError(callback);
4                      ajaxSend(callback);
5                      ajaxStart(callback);
6                      ajaxStop(callback);
7                      ajaxSuccess(callback)            

 1七、

function argsAsArray(fn, arr) {
    return fn.apply(this,arr);
}  //經過argsAsArray方法調用自生的fn方法,傳入參數是arr

  apply方法:   apply([thisObj[,argArray]])   ---- 應用某一對象的一個方法,用另外一個對象替換當前對象。 參數是數組

    說明: 若是argArray 不是一個有效的數組或者不是 arguments 對象,那麼將致使一個 TypeError。 

               若是沒有提供 argArray 和 thisObj 任何一個參數,那麼 Global 對象將被用做 thisObj, 而且沒法被傳遞任何參數。

  

  call方法:    call([thisObj[,arg1[, arg2[,   [,.argN]]]]])   ---- 調用一個對象的一個方法,以另外一個對象替換當前對象。 參數是參數列表

         例子:A.call(B[,args1[,args2...]])    用A對象去替換B對象

    說明: call 方法能夠用來代替另外一個對象調用一個方法。call 方法可將一個函數的對象上下文從初始的上下文改變爲由 thisObj 指定的新對象。 
        若是沒有提供 thisObj 參數,那麼 Global 對象被用做 thisObj。 

     借鑑他人的博客:http://uule.iteye.com/blog/1158829
    
1八、關於prototype原型  

 1 //使用構造函數法
 2 function createModule(str1, str2) {    
 3     function Obj(){       
 4     this.greeting = str1;       
 5     this.name = str2;        
 6     this.sayIt = function(){   
 7          return this.greeting + ', ' + this.name;  
 8       };  
 9   }   
10     return new Obj();
11 }
12 //構造函數與原型組合
13 function createModule(str1, str2) {    
14     function CreateMod(){   
15         this.greeting = str1; 
16         this.name = str2;  
17   }    
18     CreateMod.prototype.sayIt = function(){      
19         return this.greeting + ', '  + this.name;   
20  }   
21         return new CreateMod();
22 }            

1九、toString()方法將對象轉換成字符串。若是帶參數toString(n),即將其轉換成n進製表示。

20、javascript標準事件模型的執行順序:事件捕獲->事件處理->事件冒泡。先事件捕獲從windows到document往下級知道特定的事件節點,而後進行事件處理,在事件冒泡,

  從特定節點往上級,完成整個過程。

2一、頁面性能指標:白屏時間---用戶從打開頁面開始到也買你開始有東西呈現爲止。

                          首屏時間---用戶瀏覽器首屏內全部內容都呈現出來所花費的時間。

             用戶可操做時間(dom Interactive)---用戶進行正常的點擊、輸入等操做,默承認以統計dom ready時間,由於一般會在這個時候綁定用戶操做。

         總下載時間---頁面全部資源加載完成並呈現出來所花費的時間,即頁面onload時間。

       參照:http://www.cnblogs.com/chuaWeb/p/PerformanceMonitoring.html

2二、javascript中,變量分爲基本數據類型和引用數據類型兩種,基本數據類型用8字節內存,存儲基本數據類型(數值、布爾值、null和未定義)的值,引用類型的變量則只保存對對象、數組和函數等引用類型的值得引用(即內存地址)。javascript內部,全部數字都是以64位浮點數形式存儲的。

      基本數據類型:Number、String、Boolean、Undefined、NUll

      複雜數據類型:Object、Array、Function、RegExp、Date、Error

      全局數據類型:Math

  以上,除了NULL,其他的均可以成爲JS的內置對象。

2三、angular.js中的服務實質上是單例對象。單例模式有第三個特色:一是某個類只能有一個實例;二是它必須自行建立這個實例;三是它必須向整個系統提供這個實例。

2四、NaN,即非數值(Not a Number)是一個特殊的數值,這個數值用來表示一個原本要返回數值的操做數未返回數值的狀況(這樣就不會跑出錯誤了)。

2五、一個promise可能有三種狀態:等待(pending)、已完成(fulfiled)、已拒絕(rejected)。一個promise的狀態只能從「等待」轉向「完成」或者「拒絕」態,不能逆向轉化,同時「完成」態和「拒絕」態不能相互轉化promise實現then方法。(能夠說,then是promise的核心),並且then必須返回一個promise,同一個promise的能夠調用屢次,並且回調的執行順序和他們被定義時的順序一致then方法接受兩個參數,第一個參數是成功是的回調,在promise由「等待」狀態轉換到「完成」態是調用,另外一個是失敗時的回調,在promise由「等待」狀態轉到「拒絕」態時調用。

2六、hasOwnProperty:用來判斷一個對象是否有你給出的名稱的屬性或對象。但此方法沒法檢查該對象原型鏈中是否具備屬性值,該屬性必須是對象自己的一個成員。

      isPrototypeOf用來判斷要檢查其原型鏈的對象是否存在於指定對象實例中,是則返回true,不然返回false。

2七、

1 var f = function g(){
2          return 23;
3 };
4 typeof g();     //結果是ReferenceError,g is not defined
5 typeof g;      //結果是undefined
6 typeof f();    //結果是number
7 typeof f;    //結果是function

       注: typeof  null  的結果是  object

2八、Jquery   siblings()方法返回被選元素的全部同胞元素;

2九、回調時,被回調的函數會放在event loop裏,等待線程裏的任務執行完後才執行event loop裏面的代碼。

30、對元素的margin設置百分數,是相對於父元素width計算的。

3一、Html中的標籤分爲閉合標籤和自閉合標籤。自閉和標籤有<input/><img/><br/><link/><hr/>等。

3二、<hr/>定義水平線。

3三、Css樣式中的權值大小:第一等:內聯樣式,如:「style= 」,權值爲1000

                                    第二等:ID選擇器,如:#content,權值爲0100

                                    第三等:類,僞類和屬性選擇器,如:.content,權值爲0010

                                    第四等:表明類型選擇器和僞元素選擇器,如:div  p,權值爲0001

                                      通配符、子選擇器、相鄰選擇器等,如:*、>、+,權值爲0000 ;  繼承的樣式沒有權值

3四、HTML body部分中的javascript會在頁面加載的時候被執行;head部分中的只有在被調用的時候纔會被執行。

3五、不換行必須設置word-break:break-all 處理單詞的打斷 和 word-spacing:no-wrap處理元素內的空白,只在一行內顯示。

3六、link是在加載頁面前把Css加載完畢;@import url()是在讀取文件文件後加載,因此會出現一開始沒有css樣式,閃爍一下出現樣式後的頁面(網速慢的狀況下)

3七、CSS樣式:邊距:10px 20px 30px 40px哪個是底邊距?  巧計:順時針,上右下左。

3八、parseInt方法能夠將其它進制轉換爲十進制。

3九、基本類型和封裝類型進行「==」運算符比較時,封裝型會自動拆箱爲基本型在比較。

      兩個Integer類型進行「==」比較,若是其值在-128至127,那麼返回true,不然返回false。

  兩個封裝型進行equals比較,會先比較類型在比較值。

 1 int a=257 2 Integer b=257 3 Integer c=257 4 Integer b2=257 5 Integer c2=257 6 System.ou.println(a==b);
 7 //System.ou.println(a.equals(b)); //編譯出錯,基本類型不能調用equals
 8 System.ou.println(b.equals(257.0));
 9 System.ou.println(b==c);
10 System.ou.println(b2==c2);
11 
12 //上面的代碼結果依次爲true,false,false,true

40、suspend()使得線程進入阻塞狀態,而且不會自動回覆。

   resume()使進程從新進入可執行狀態。(這兩個配套使用)

4一、6種基本數據類型:byte,bollean,short,char,int,long,float,double。

42、自動數據類型轉換:按照由低到高的順序轉換。優先關係以下:

       byte,short,char--> int--> long --> float --> double

      其中,最底層的類型不能進行運算,如有運算會自動向上轉換int型。

4三、根類Object中的方法:clone();equals();finalize();getClass();notify();notifyAll();hashCode();toString();wait()

4四、

1 1 var a=22 2 var b=3;
3 3 if(a=b){...
4 4 }     //在java中「=」賦值是有返回值的,賦什麼值就返回什麼值
5           //C中賦值後會與0進行比較,大於0返回true,不然false

4五、String類是不可改變的類,String str =「123」;str=「1」並非覆蓋而是新建一個內存空間指向它

4六、解決哈希衝突的兩種方法:開放地址法、鏈地址法

4七、常見的瀏覽器端存儲技術: cookie  、 sessionstorage   、localstorage

4八、在HTML body部分中的JavaScripts會在頁面加載的時候被執行。 在HTML head部分中的JavaScripts會在被調用的時候才執行

4九、javascript中在進行算術運算時,「+號」,數字隱式轉換成字符串。其他的運算符號是字符串隱式轉換成數字。

50、

相關文章
相關標籤/搜索