-
ng-class是用於給元素綁定樣式;用法:
- <div ng-class="{'A':isA,'B':isB,'C':isC}"></div>
- <div ng-class = "{{A}}" > </ div >
- ng-if 指令用於在表達式爲 false 時移除 HTML 元素。如果 if 語句執行的結果爲 true,會添加移除元素,並顯示。ng-if 指令不同於 ng-hide, ng-hide 隱藏元素,而 ng-if 是從 DOM 中移除元素。
- ng-app 指令用於告訴 AngularJS 應用當前這個元素是根元素。所有 AngularJS 應用都必須要要一個根元素。HTML 文檔中只允許有一個 ng-app 指令,如果有多個 ng-app 指令,則只有第一個會被使用。
- ng-if 指令用於在表達式爲 false 時移除 HTML 元素。如果 if 語句執行的結果爲 true,會添加移除元素,並顯示。ng-if 指令不同於 ng-hide, ng-hide 隱藏元素,而 ng-if 是從 DOM 中移除元素。
- ng-click給元素綁定監聽
- ng-show顯示 ng-hide隱藏
- 數組本身就是一個對象;可以對數據進行一種存儲;arr.length,對arr對象的length屬性進行一個訪問
- 在標準的 JavaScript 中, Ajax 異步執行調用基於Event和callback來實現;JavaScript處理異步都是以callback的方式,在前端開發領域callback機制幾乎深入人心;
- 所謂Promise,字面上可以理解爲“承諾”,就是說A調用B,B返回一個“承諾”給A,然後A就可以在寫計劃的時候這麼寫:當B返回結果給我的時候,A執行方案S1,反之如果B因爲什麼原因沒有給到A想要的結果,那麼A執行應急方案S2,這樣一來,所有的潛在風險都在A的可控範圍之內了。
var resB = B();
var runA = function() {
resB.then(execS1, execS2);
};
runA();
- 下面三個事件都是事件對象的方法:
-
stopPropagation()
阻止事件冒泡。 這個事件不會阻止定義在元素上的其他事件。 -
stopImmediatePropagation()
會徹底的阻止事件, 在其之後的綁定在元素上的其他監聽事件都不會觸發 -
preventDefault()
阻止事件的默認動作 - js沒有選項中的其他事件
- setTimeout的方式(註冊事件):有兩個參數,第一個參數是函數,第二參數是時間值。調用setTimeout時,把函數參數,放到事件隊列中。等主程序運行完,再調用
-
hasOwnProperty: 是用來判斷一個對象是否有你給出名稱的屬性或對象。不過需要注意的是,此方法無法檢查該對象的原型鏈中是否具有該屬性,該屬性必須是對象本身的一個成員。
isPrototypeOf : 是用來判斷要檢查其原型鏈的對象是否存在於指定對象實例中,是則返回true,否則返回false。
-
使用object.defineProperty可向對象添加或者修改屬性
-
原型鏈是JS實現繼承的一種模型
-
For循環是按順序的,for in 循環是不一定按順序的
-
在原型上擴展的可枚舉方法,會被for in循環出來
this指的就是windows
-
第一個+"2"中的加號是一元加操作符,+"2"會變成數值2,因此1+ +"2"相當於1+2=3.console.log(
1
+ +
"2"
+
"2"
);
然後和後面的字符串“2”相合並,變成了字符串"32". -
"A"-"B"的運算中,需要先把"A"和"B"用Number函數轉換爲數值,其結果爲NaN,在剪髮操作中,如果有一個是NaN,則結果是NaN,因此"A"-"B"結果爲NaN。console.log(
"A"
-
"B"
+
"2"
);
然後和"2"進行字符串合併,變成了NaN2 -
根據上題所述,"A"-"B"結果爲NaN,然後和數值2進行加法操作,在加法操作中,如果有一個操作數是NaN,則結果爲NaNconsole.log(
"A"
-
"B"
+
2
);
- 一元加操作符以一個加號(+)表示,放在數值前面,對數值不會產生任何影響,
var num=25; num=+num; console.log(num);/25
在對非數值應用一元加操作符時,該操作符會像 Number()轉型函數一樣對這個值執行轉換。 換句話說,布爾值 false 和 true 將被轉換爲 0和 1,字符串值會被按照一組特殊的規則進行解析,而 對象是先調用它們的 valueOf()和(或)toString()方法,再轉換得到的值.
var S1 = "01";
var S2 = "1.1";
var S3 = "z";
var b = false;
var f = 1.1;
var o = { valueOf: function () { return -1; } };
S1=+S1;
S2=+S2;
S3=+S3;
b=+b;
f=+f;
o=+o;
console.log(S1);//1
console.log(S2);//1.1
console.log(S3);//NAN
console.log(b);//0
console.log(f);//1.1
console.log(o);//-1
- .ajax() 方法通過 HTTP 請求加載遠程數據。$.ajax(opts);opts爲json格式,常見參數url、type、data等
-
load() 方法從服務器加載數據,並把返回的數據放入被選元素中。$(selector).load(URL,data,callback);
必需的 URL 參數規定您希望加載的 URL。
可選的 data 參數規定與請求一同發送的查詢字符串鍵/值對集合。
可選的 callback 參數是 load() 方法完成後所執行的函數名稱。
-
$.get() 方法通過 HTTP GET 請求從服務器上請求數據。
$.get(URL,callback);
必需的 URL 參數規定您希望請求的 URL。
可選的 callback 參數是請求成功後所執行的函數名。
-
getScript() 方法通過 HTTP GET 請求載入並執行 JavaScript 文件。
jQuery.getScript(url,success(response,status));
-
pop()方法用於刪除數組的最後一個元素,並返回被刪除的最後一個元素,這樣的話數組就被改變了。
splice()方法可以對數組中已經存在元素進行刪除,也可以添加元素到數組中。
sort()方法對數組中所有的元素都進行排序,如果沒有提供比較函數compareFunction,則按照字符串的Unicode碼的順序進行排序。
所以以上三種方法都改變了數組。
而 concat()方法用於連接兩個或多個數組。該方法不會改變現有的數組,而僅僅會返回被連接數組的一個副本,返回一個新的數組。該數組是通過把所有的arrayX參數添加到arryaObject中生成的,如果要進行 concat()操作的參數是數組,那麼添加的是數組中的元素,而不是數組。
-
$emit() 是向上冒泡
$broadcast() 是向下傳播事件 需給子scope發送消息,需使用
-
var f = function g() { return 23; }; // console.log(typeof g());報錯 console.log(typeof f);//function
在 JS 裏,聲明函數只有 2 種方法:
第 1 種: function foo(){...} (函數聲明)
第 2 種: var foo = function(){...} (等號後面必須是匿名函數,這句實質是函數表達式) - 一個promise可能有三種狀態:等待(pending)、已完成(fulfilled)、已拒絕(rejected)
- 一個promise的狀態只可能從“等待”轉到“完成”態或者“拒絕”態,不能逆向轉換,同時“完成”態和“拒絕”態不能相互轉換
- promise必須實現then方法(可以說,then就是promise的核心),而且then必須返回一個promise,同一個promise的then可以調用多次,並且回調的執行順序跟它們被定義時的順序一致
- then方法接受兩個參數,第一個參數是成功時的回調,在promise由“等待”態轉換到“完成”態時調用,另一個是失敗時的回調,在promise由“等待”態轉換到“拒絕”態時調用。同時,then可以接受另一個promise傳入,也接受一個“類then”的對象或方法,即thenable對象。