1. 程式人生 > 其它 >js函式-引數預設值

js函式-引數預設值

1. 在es6之前必須通過函式內部實現

就像以下的幾種情況:

function example(a,b){
    var a = arguments[0] ? arguments[0] : 1;//設定引數a的預設值為1
    var b = arguments[1] ? arguments[1] : 2;//設定引數b的預設值為2
    return a+b;
}
function example(name,age){
    name=name||'貂蟬';
    age=age||21;
    alert('你好!我是'+name+',今年'+age+'歲。');
}
function example(name,age){
    
if(!name){name='貂蟬';} if(!age){age=21;} alert('你好!我是'+name+',今年'+age+'歲。'); }

2. 在ES6中可以像其它程式語言那樣直接使用預設引數了

  在class的構造器中使用預設引數

1   class Person {
2     constructor(name="", age=18) {
3       this.name = name
4       this.age = age
5     }
6   }
7   const P1 = new Person()
8   console.log(P1.name) //

  建構函式中,(適用於專案中有一個古老的方法,但是現在要求根據某個條件來改變這個方法的邏輯,則只需要給這個函式一個預設值即可,不需要通篇找到這個方法去改)

 1   isHandle(false) //引數為false,則實參flag接收的為false
 2 
 3   isHandle()
 4 
 5   function isHandle(flag = true) { //預設為true,呼叫函式時不傳預設為true,
 6     if(flag) {
 7       //flag == true 時的邏輯
 8     } else {
 9        //flag == false 時的邏輯
10 } 11 }