Js 基礎知識
1.變量類型
- undefined
- null
- string
- == 與 === 區別
- number
- boolean
- string、number、boolean均有對應的 '對象類'
2.函數
- 定義函數
- function 關鍵字
- 參數(見例子),arguments
- 函數內變量聲明,var區別
- 作用域
- 鏈式結構(子函數可以看見父函數的變量)
- 匿名函數
- 使用場景(非復用場景,如:jsonp回調函數)
- this特征
var fn = function() {
name = "hello";
alert(this.name);
}
fn(); // 因函數內部變量name未聲明為var,則屬于全局變量,且this指向windows,則為'hello'
3.閉包
- undefined
- null
- string
- == 與 === 區別
- number
- boolean
- string、number、boolean均有對應的 '對象類'
2.函數
- 定義函數
- function 關鍵字
- 參數(見例子),arguments
- 函數內變量聲明,var區別
- 作用域
- 鏈式結構(子函數可以看見父函數的變量)
- 匿名函數
- 使用場景(非復用場景,如:jsonp回調函數)
- this特征
例子:
var name = "windows";
var fn = function() {
var name = "hello";
alert(this.name);
}
fn(); // windows,this在匿名函數內部是指向windows范圍
var name = "windows";var add = function(x) {
return x++;
}
add(1,2,3); // 參數可以隨意多個,類似Java中的(int x ...)
return x++;
}
add(1,2,3); // 參數可以隨意多個,類似Java中的(int x ...)
var fn = function(name, pass) {
alert(name);
alert(pass);
};
fn("hello","1234",5); // 按照傳遞的順序排列
var name = "windows";
var fn = function() {
var name = "hello";
alert(this.name);
}
fn(); // windows,this在匿名函數內部是指向windows范圍
var fn = function() {
name = "hello";
alert(this.name);
}
fn(); // 因函數內部變量name未聲明為var,則屬于全局變量,且this指向windows,則為'hello'
function add(a) {
return ++a;
}
var fn = function(x,add){
return add(x);
}
fn(1, add); // 函數作為參數
3.閉包
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html 【good】
其它語言閉包概念 http://www.ibm.com/developerworks/cn/linux/l-cn-closure/
4.對象
- new Object() –創建新對象
var obj = { // 字面常量方式,定義對象
其它語言閉包概念 http://www.ibm.com/developerworks/cn/linux/l-cn-closure/
4.對象
- new Object()
– 對象字面量
– 構造函數
- 上述操作,經歷的步驟
- 上述操作,經歷的步驟
–將構造方法的作用域賦給新對象(new 操作符)
–為對象添加屬性, 方法
–返回該對象
var obj = new Object(); // new Object方式
obj.name = 'zhangsan';
var obj = { // 字面常量方式,定義對象
name : 'zhangsan',
showName : function (){
alert(this.name);
}
}
};
alert(obj.showName());
alert(obj.showName());
function Person(name) { // 構造函數
this.name = name;
this.showName = function(){
return this.name; }
};
var obj = new Person("zhangsan"); // 必須用 new 關鍵,否則等于調用一個普通函數
obj.showName();
alert(obj.name);
this.name = name;
this.showName = function(){
return this.name; }
};
var obj = new Person("zhangsan"); // 必須用 new 關鍵,否則等于調用一個普通函數
obj.showName();
alert(obj.name);
posted on 2012-05-20 13:50 石建 | Fat Mind 閱讀(270) 評論(0) 編輯 收藏