JavaScript中的函數使用

JavaScript中的函數使用

1. 幾個系統函數舉例

1.1 isNaN()

  • 判斷一個變量的值是否是一個非數字,可以理解為is not a number
alert(isNaN(100));//false
alert(isNaN("abc"));//true
alert(isNaN(100.456));//false
  • NaN:運算過程中,當某變量是一個非數字時,返回一個NaN,表示not a number
var num=100-"abc";
alert(num);//NaN

1.2 parseInt()(重要)

  • 把一個變量變為一個整數類型
var num1="100.456";
alert(parseInt(num1));//100
var num2="100.abc456";
alert(parseInt(num2));//100
var num3="abc100.456";
alert(parseInt(num3));//NaN

1.3 parseFloat()(重要)

  • 把一個變量變為一個浮點型(小數)
var num1="100.456";
alert(parseFloat(num1));//100.456
var num2="100.abc456";
alert(parseFloat(num2));//100
var num3="abc100.456";
alert(parseFloat(num3));//NaN

1.4 Number()

  • 把變量內容轉變為數字
alert(Number(true));         //1,Boolean類型的true和false分別轉換成1和0
alert(Number(25));                              //25,數值型直接返回
alert(Number(null));                    //0,空對象返回0
alert(Number(undefined));       //NaN,undefined返回NaN

1.5 Boolean()

  • 把變量轉換為boolean型變量(true或者false)
alert(Boolean(true));//true
alert(Boolean(25));//true
alert(Boolean(null));//false
alert(Boolean(undefined));//fasle
alert(Boolean(0));//false

1.6 Infinity

  • 表示無窮大

1.7 isFinite()

  • 用來檢查輸入是否是一個既非Infinity也非NaN的數字

1.8 編碼函數

  • encodeURI()和encodeURIComponent()
  • decodeURI()和decodeURIComponent()
  • escape()和unescape()

JavaScript中的函數使用JavaScript中的函數使用

1.9 四捨五入函數

  • toFixed(num)—->對數字進行四捨五入,保留num位小數例 :marketPrice.substring(1,marketPrice.length)).toFixed(2)

2.eval()函數

代碼1:

JavaScript中的函數使用

效果1:

JavaScript中的函數使用

eval中的字符串被當做JavaScript代碼執行了。

註:

  • JavaScript中,如果一個字符串中多次出現雙引號(“”)或單引號(”),則若用雙引號引起字符串,里面的就需要使用單引號引用,反之亦然,具體看代碼1。

3.自定義函數

3.1 語法格式

function 函數名(參數1,參數2,….) {
//函數代碼塊
}
或者
var 函數名 = function(參數1,參數2,….) {
//函數代碼塊return xxxx;
}
function add(a,b){
var sum=a+b;returnsum;
}

其中,function 為關鍵字

add為函數名字,自定義

a,b為函數的傳入參數,如果沒有,可以不傳,多個參數之間用,隔開

​ var sum = a + b; 為函數要執行的代碼塊,也叫函數體

​ return子句,函數通常都會有返回值,如果某個函數沒有顯式返回值,默認返回值為undefined;如果有多個值需要返回,可以考慮返回數組。

4. 匿名函數( 定義沒有函數名稱的函數 )

  • 沒有名字的函數即為匿名函數
  • 匿名函數也可以賦值給某個變量,然後通過變量來調用
//傳統的定義函數方式
var fn = function(){
alert(12345);
}
fn();
//函數體替換fn
(function(){
alert(12345);
})();

代碼1:

JavaScript中的函數使用

效果1:

JavaScript中的函數使用JavaScript中的函數使用

4.1 匿名函數不被賦值給變量時,也有兩種用法

  • 將匿名函數作為參數傳遞給其他函數,體現了函數也是數據的思想
  • 定義某個匿名函數來執行某些一次性任務

4.2 即時函數

  • 也是匿名函數的一個應用
(function(name){
alert("通過即時函數執行show函數,name="+name);
})('zhangsan');

5. 函數的返回值

  • 通過 return 關鍵字返回函數的值

JavaScript中的函數使用

與 Java 一樣,函數在執行過 return 語句後立即停止代碼。因此,return 語句後的代碼都不會被執行(此函數範圍內,此函數外不受影響)。

6. 回調函數

6.1 常規寫法

function add(a,b) {
return a()+b();
}
function one() {
return1;
}
function two() {
return2;
}//調用時varsum=funadd(one,two);alert(sum);

6.2 改進後的寫法

function add(a,b) {
return a()+b();
}
//調用時
var sum = add(function(){
return1;
},function(){
return2;
});
alert(sum);

當我們將函數A傳遞給函數B,並由B來執行A時,A就成了一個回調函數(callback),如果這時A還是一個無名函數,我們就稱它為匿名回調函數

  • 回調函數的優點:可以讓我們在不做命名的情況下傳遞函數(節省變量名) 可以將一個函數調用委託給另一個函數(減少代碼) ​提升性能。

來源:kknewsJavaScript中的函數使用