JavaScript深入
阿新 • • 發佈:2018-11-12
流程控制
var a = 10; if (a>5){ console.log('大於5'); }else { console.log('小與5'); } //大於5if-else
var a = 10; if (a>5){ console.log('a>>>5'); }else if(a<5){ console.log('a<<<5'); }else { console.log('a===5'); } //a>>>5 換行shift+ctrlif-else if-else
var day = new Date().getDay(); switch (day){ case 0: console.log('Sunday'); break; case 1: console.log('Monday'); break; default: console.log('自己去看'); } //Monday 根據星期幾去選擇輸出內容,先得到本地日期,然後case週一到週日 //switch中的case子句通常都會加break語句,否則程式會繼續執行後續case中的語句。switch
for (var i=0;i<10;i++){ console.log(i); } // 定義一個i=0,條件是如果i<10,那麼i++(自加),輸出i,如果i>=10,則結束 //0123456789for
var i = 0; while(i<10){ console.log(i); i++; } //定義一個i=0,while+(條件){結果} //0123456789while
var a = 1; var b = 2; var c = a>b?a:b;三元運算//定義a,b,如果a>b輸出a,否則輸出b(?:) //a = 1 //b = 2 //c = a if a > b else b
函式
JavaScript中的函式和Python中的非常類似,只是定義方式有點區別。
//普通函式定義 function func(){ console.log('Baby'); } func(); //Baby //function+函式名(){函式內容} //帶引數的函式 function func2(a,b){ console.log(arguments); console.log(arguments.length); //內建的arguments物件,檢視傳入引數的長度 console.log(a,b); } func2(1,2,3,4,5,6,7); // 7 1 2 傳再多值也只會顯示兩個 func2(1); // 1 1 undefined 只傳入一個值則會自動傳入一個undefined func2([1,2,3,4,5,6,7]); //1 [1,2,3,4,5,6,7] undefined //不傳值則會傳入兩個undefined //帶返回值的函式 function sum(a, b){ return a+b; } sum(1,2) //3 //匿名函式 var sum = function(a,b){ return a+b; } sum(1,2); //3 匿名函式沒有函式名,直接開始 //立即執行函式 (function(a,b){ return a+b; })(1,2); //3 打完之後立即執行把函式放在括號裡 //ES6中允許使用“箭頭”(=>)定義函式。 var f = v => v; // 等同於 var f = function(v){ return v; } //如果箭頭函式不需要引數或需要多個引數,就是用圓括號代表引數部分:如果箭頭函式不需要引數或需要多個引數,就是用圓括號代表引數部分: var f = () => 5; //()=>5 // 等同於 var f = function(){return 5}; //ƒ (){return 5} var sum = (num1, num2) => num1 + num2; //sum(1,2) 3 // 等同於 var sum = function(num1, num2){ return num1 + num2; } //sum(1,2) 3函式定義
函式的全域性變數和區域性變數 區域性變數: 在JavaScript函式內部宣告的變數(使用 var)是區域性變數,所以只能在函式內部訪問它(該變數的作用域是函式內部)。只要函式執行完畢,本地變數就會被刪除。 全域性變數: 在函式外宣告的變數是全域性變數,網頁上的所有指令碼和函式都能訪問它。 變數生存週期: JavaScript變數的生命期從它們被宣告的時間開始。 區域性變數會在函式執行以後被刪除。 全域性變數會在頁面關閉後被刪除。 作用域 首先在函式內部查詢變數,找不到則到外層函式查詢,逐步找到最外層。
var city = "BeiJing"; function f() { //2 var city = "ShangHai"; //3 function inner(){ //4 var city = "ShenZhen"; //5 console.log(city); //6 此時city='shenzhen' } inner(); } f(); //1 //shenzhen var city='beijing'; function Bar(){ //6 console.log(city); //7 沒有city,向上找,city='beijing' } function f(){ //3 var city='shanghai'; //4 return Bar; //5 } var ret = f(); //2 ret(); //1 //beijing var city='beijing'; function f(){ //3 var city='shanghai'; //4 //7 function inner(){ //5 console.log(city); //6 } return inner; //8 } var ret = f(); //2 ret(); //1 //shanghai尋找變數示例