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

JavaScript 程式設計

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for kvzhuang kvzhuang
January 13, 2014
130

JavaScript 程式設計

Avatar for kvzhuang

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