JavaScript
- ==與===區別?
- ==會自動轉換類型再比較。
- ===數據類型不一致,直接false;數據類型一致再比較。(推薦使用)
- const, var, let的區別?(注;如果三個都沒用,那么這個變量在此頁面中為全局變量)
- const : 定義常量,而且必須初始化。
const b = 2;//正確
- var : 定義的變量可以修改,如果不初始化會輸出undefined,不會報錯。
var a = 1;
- let : 塊級作用域,函數內部使用let定義后,對函數外部無影響。
- const : 定義常量,而且必須初始化。
- this 指向當前對象
var xiaoming = {
name: '小明',
birth: 1990,
age: function () {
var that = this; // 在方法內部一開始就捕獲this
function getAgeFromBirth() {
var y = new Date().getFullYear();
return y - that.birth; // 用that而不是this
}
return getAgeFromBirth();
}
};
xiaoming.age(); //30
- 箭頭函數
// 兩個參數:
(x, y) => x * x + y * y
// 無參數:
() => 3.14
//多條語句時{}不能省略
// 可變參數:
(x, y, ...rest) => {
var i, sum = x + y;
for (i=0; i<rest.length; i++) {
sum += rest[i];
}
return sum;
}
DOM
- 添加DOM對象
haskell = document.createElement('p');
haskell.id = 'haskell';
haskell.innerText = 'Haskell';
//相當於插入 <p id="haskell">Haskell</p>
瀏覽器
- Promise先執行邏輯,再根據結果調用success函數或fail函數。
//一個簡單的例子
new Promise(method).then(function (result) {
console.log('成功:' + result);
}).catch(function (reason) {
console.log('失敗:' + reason);
});
jQuery
- jQuery對象與DOM對象
var div = $('#abc'); // jQuery對象
var divDom = div.get(0); // 假設存在div,獲取第1個DOM元素
var another = $(divDom); // 重新把DOM包裝為jQuery對象
- jQuery事件
- ready:當頁面被載入並且DOM樹完成初始化后觸發。
//document是原生DOM對象
$(document).on('ready', function () {
$('#elementId).on('submit', function () {
alert('submit!');
});
});
//on等價於下面這種寫法
$(document).ready(function () {
// on('submit', function)也可以簡化:
$('#testForm).submit(function () {
alert('submit!');
});
});
- 事件參數(監聽事件)
$(function () {
$('#testMouseMoveDiv').mousemove(function (e) {
$('#testMouseMoveSpan').text('pageX = ' + e.pageX + ', pageY = ' + e.pageY);
});
});