#JavaScript概述
- <a href="#no1">1.1 JavaScript語言核心</a>
- <a href="#no2">1.2 客戶端JavaScript參考</a>
##<a name="no1">1.1 JavaScript語言核心</a>
> `JavaScript`中兩個非常重要的數據類型是對象和數組。
#
> 通過方括號定義數組元素和通過花括號定義對象屬性名和屬性值之間的映射關系的語法稱為初始化表達式。
#
> 函數是帶有名稱和參數的`JavaScript`代碼段,可以一次定義多次調用。
#
> 當函數賦值給對象的屬性,我們稱為“方法”,所有的`JavaScript`對象都含有方法。
#
###求絕對值的函數
function abs(num){
if(num > 0){
return x;
}else{
return -x;
}
}
###計算階乘的函數
function factorial(n){
var product = 1;
while(n > 1){
product *= n;
n--;
}
return product;
}
factorial(5); //=> 5 * 4 * 3 * 2 * 1 = 120
**實現循環的另一種寫法**
function factorial2(n){
var i, product = 1;
for(i = 2;i < n; i++){
product *= i;
}
return product;
}
factorial(5); //=> 1 * 2 * 3 * 4 * 5= 120
###面向對象編程demo
function Ponit(x, y){
this.x = x;
this.y = y;
}
var p = new Ponit(1,1);
Ponit.prototype.r = function(){
return Math.sqrt(this.x * this.x + this.y * this.y);
};
console.log(p.r()); //=> 1.4142135623730951
##<a name="no2">1.2 客戶端JavaScript參考</a>
> `JavaScript`代碼可以通過`<script>`標簽來嵌入到`HTML`文件中。
###通過腳本來操縱`HTML`文檔內容
// 在document中的一個指定區域輸出調試信息
// 如果document不存在這樣一個區域,則創建一個
function debug(msg){
var log = document.getElementById('debuglog');
if(!log){
log = document.createElement('div');
log.id = 'debuglog';
log.innerHTML = '<h1>Debug Log</h1>';
document.body.appendChild(log);
}
var pre = document.createElement('pre');
var text = document.createTextNode(msg);
pre.appendChild(text);
log.appendChild(pre);
}
debug('測試文本');
> `load`事件只有在文檔加載完成之后才會觸發,通常需要等待`load`事件發生后才開始執行`JavaScript`代碼。