標籤:引用 value 技術 範圍 object 分配 ... var 分享圖片
<script src = "xxx.js" defer = "defer"> </script>
在引用外部script時,<script src = "">內部不能再有代碼,瀏覽器只載入外部檔案</script>
defer 屬性只實用於外部js引用情景;屬性功能指定下載js代碼,直到載入完頁面內容才載入js檔案;
變數範圍
- A只能訪問a
- B只能訪問a, b
- C只能訪問a, b, c
- D只能訪問a, d
在javaScript中沒有塊範圍,只有函數範圍
for(var i = 0; i < 10; i++)
{
......
};
alret(i); // i = 9;//i的範圍屬於上層範圍;
用var 申明的變數會自動放入最接近的範圍中(所在函數內部),而未使用var申明的變數.都是全域變數
資料類型
基本類型(undefined, Null, Boolean, Number, String)
參考型別(Object, Array, Date, RegExp, Function, )
var obj = new Object();
var arr = new Array();
var arr = new Array(5); //分配長度
var arr = new Array("init", "init1"); //建立並初始化
var time = new Date(); //返回當前系統時間
var re = new RegExp(); //Regex類型
Math對象
Math.PI //派的值
Math.max("5", "4", "8", "...");//返回最大值(可以理解為靜態成員方法)
Math.min("...");//返回最大值
對象
Object.defineProperty(obj, "name", {
writable: false,
value: " bokeyuan"
});
Object.defineProperty(); //靜態成員函數,用來指定成員屬性類型
- 第一個參數為,需要設定的對象
- 第二個參數為,對象屬性名稱;
- 第三個對象為,對象屬性類型設定
可設定的類型
- [configurable] //能否通過delete刪除屬性,預設true
- [enumerable] //能否通過for-in 迴圈返回屬性預設true
- [writable] //能否修改屬性值 預設true
- [value] //讀取屬性值時從位置讀;寫入值時,放入此位置,預設undefined;
建立對象
原廠模式(函數調用模式)
function getObj(name, face, toll)
{
var obj = new Object();
obj.name = name;
obj.face = face;
obj.toll = toll;
//成員方法
function ta()
{
return face + toll;
}
....
return obj;
}
var a1 = getObj("...","...","... ");
var a2 = getObj("...","...","... ");
建構函式模式(函數對象等效模式)
function getObj(name, age, time)
{
this.name = name;
this.age = age;
this.time = time;
function t()
{
return this.time++;
}
}
var obj = new getObj("..", "..", "..");
原型模式(成員初始化模式)
function getObj()
{
getObj.prototype.name = "...";
getObj.prototype.age = ....;
getObj.prototype.time = ....;
function x()
{
.....
}
}
var obj = new getObj();
組合使用建構函式模式
動態原型模式
寄生建構函式模式
穩妥建構函式模式
繼承
原型鏈
借用建構函式
組合繼承
原型式繼承
寄生式繼承
寄生組合式繼承
javaScript進階程式設計第3版筆記