Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JavaScript 程式設計

kvzhuang
January 13, 2014
120

JavaScript 程式設計

kvzhuang

January 13, 2014
Tweet

Transcript

  1. JavaScript 緣起  1995年 NetScape, Brendan Eich開發  原名LiveScript 

    NetScape看 Java當年的 Java Applet在Web很紅,於是更名為 JavaScript  JavaScript 不等於 Java
  2. JavaScript 不等於 Java  語法部分類似 Java  Self 的 prototype

     Perl 的 Regular expression  Scheme的 function
  3. ECMAScript  ECMA - European Computer Manufacturers Association  1996年,

    Netscape把 JavaScript提交給 ECMAS 變成工業標準  ECMAScript  根據ECMAScript實作的語言  ActionScript
  4. JavaScript 正確認知  和 Java是完全不同的語言  Browser存在一個叫做 DOM (Document Object

    Model) 的 API (Application Programming Interface)讓 JavaScript 可以存取 HTML
  5. 如何使用 JavaScript  直接在 HTML標籤使用  <p onclick=“javascript:alert(‘haha’);”>這是文章</p>  <a

    href=“javascript:alert(‘haha’);”>這是連結</>  不推薦 破壞 html結構  請搬到 <script>…</script>區段  不推薦過多程式碼,也是破壞 html結構  或是搬到 *.js檔案載入  <script src=“js檔案路徑”></script>  推薦
  6. HTML Template <!DOCTYPE html> <html> <head> <meta char=“utf-8”> <title> JavaScript

    Sample</title> <script> //…. Code… </script> </head> <body> </body> </html>
  7. JavaScript 資料型態  五種 Primitive type  number – var

    a = 10;  String – var a = “I am string”;  Boolean – var a = true;  null  undefined  其他都是物件  Object  Function  Array  其他自訂擴充物件
  8. number  數值  10進位 1234567  8進位 01234567 

    16進位 0x1234567  科學記數法 1.234567E6  IEEE 754  精準度只到 15位數  超級不準確 parseInt('010'); // ECMAScript 5 前吐 8 // ECMAScript 5 後吐 10 1.1 + 1.1 + 1.1 // 3.3000000000000003
  9. string  沒有 char,char 陣列  單雙引號均可  特殊字元 

    \n \r \t \' \" \\  string 中的單一字元  用 8 進位表示  \101 A  用 16 進位表示  \x41 A  用 Unicode 表示  \u0041 A  UTF-16 Big Endian
  10. null 與 undefined  兩者都是是資料型態 也是資料型態唯一的值  not defined 和

    undefined 不一樣  not defined 是 JavaScript 錯誤 var a; alert(a); // undefined var b = null; alert(b); // null b = undefined; alert(b); // undefined alert(c); // ReferenceError: c is not defined
  11. 物件  除了 Primitive type 外 都是 Object  Array

    Function 也是 Object  Object 最大特性 可以有屬性  Primitive type 不可以有屬性  除了使用 .存取屬性以外 也可以使用 [] 存取 var a = new Object(); a.b = 2; alert(a.b); // 2 var a = 1; a.b = 2; alert(a.b); // undefined var a = new Object(); a[b] = 2; alert(a[b]); // 2 沒有錯誤訊息 但寫不進去
  12. JSON物件- JavaScript Object Notation http://www.json.org/ { "menu": { "id": "file",

    "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } } }
  13. Object的屬性可以是任何東西  可以是 number, string, Boolean, null, undefined, Object, Array,

    Function … 任何 東西 var o = new Object(); o.p = 1; o.p = 'abc'; o.p = true; o.p = new Object(); o.p = new Array(); o.p = function() { alert('!'); };
  14. Object 屬性可以動態新增修改刪除 var o = new Object(); o.p = 1;

    o.p = function(){ alert('f'); } o.p(); // f delete o.p; // delete(o.p)
  15. Undefined VS not defined  Object 屬性不存在是 undefined  變數不存在是

    not defined var o = new Object(); alert(o.p); // undefined o.p = 1; alert(o.p); // 1 delete o.p; alert(o.p); // undefined alert(a); // ReferenceError: c is not defined