# 從頭開始 javascript 的學習紀錄 語法(2) ###### tags: `JavaScript 學習歷程` ## 未定義元素 ```javascript= let ar = [1,,,,58]; //[ 1, <3 empty items>, 58 ] console.log(ar); ``` ## 函式定義運算式 ```javascript= let square = function(x){ return x * x }; console.log(square(5)) //25 ``` -------------------------------------- ## 述句 ```javascript= //if......else (else if) and switch let x = 5; if (x == 3){ x = 2; console.log(x); }; console.log(x) ------------------------------------------------------------------------ let x = 5; switch(x){ case 5: console.log(6); break; case 6: console.log(555); break; } ``` ## 迴圈 ```javascript= //while let x = 5; while (x = 5){ x -= 1; console.log(x); break; }; ------------------------------------------------------------------------ //do......while let x = 5; do{ x -= 1; console.log(x); break; }while(x = 5); ------------------------------------------------------------------------ //for let x = 5; for (x = 5; x > 1; x--){ console.log(x); } ------------------------------------------------------------------------ //for......of let data = [1, 2, 3, 4, 5, 6, 7, 8, 9], sum = 0; for(let x of data){ sum += x; } console.log(sum); ``` ## 函式 ```javascript= function text(){ console.log('sssss'); } text() //const f = text; //f(); ------------------------------------------------------------------------ //指派物件 const x = {}; x.f = text; x.f(); ``` ## 引數 ```javascript= function text(a, b){ console.log(a + b); } text(1, 5); ``` ## 箭頭函式 ```javascript= const x = () => "hello"; console.log(x()); //hello ``` ## 陣列 ```javascript= //經典的sort const x = [5, 4, 3, 2, 1]; x.sort() console.log(x) ``` ## 物件 ```javascript= class car{ text(){ return "hello"; } } const a = new car(); //建構 console.log(a.text()); //hello ------------------------------------------------------------------------ //使用簡單的this //換成Python的self?可能比較好理解 class car{ text(a, b){ this.a = a; this.b = b; return a + b; } } const a = new car(); console.log(a.text(2, 3)); ``` ## 簡單遞迴 ```javascript= const fact = function(x) { return (x <= 1)? 1 : x * fact(x-1); }; console.log(fact(3)); //6 ``` {%hackmd S1DMFioCO %}