1. 程式人生 > >javaScript高級程序設計第3版筆記

javaScript高級程序設計第3版筆記

let this 沒有 reg del init 程序 math 內部

<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(); //正則表達式類型

Math對象

Math.PI //派的值

Math.max("5", "4", "8", "...");//返回最大值(可以理解為靜態成員方法)

Math.min("...");//返回最大值

對象

Object.defineProperty(obj, "name", {

  writable: false,

  value: " bokeyuan"

  });

Object.defineProperty(); //靜態成員函數,用來指定成員屬性類型

  1. 第一個參數為,需要設定的對象
  2. 第二個參數為,對象屬性名;
  3. 第三個對象為,對象屬性類型設置

可設置的類型

  • [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版筆記