Default parameters

Function parameters can be assigned default values. While calling the function, if a parameter is omitted, the default value assigned to the parameter is used:

    function render(fog_level=0, spark_level=100){ 
      console.log(`Fog Level: ${fog_level} and spark_level:
       ${spark_level}`) 
    } 
    render(10); //Fog Level: 10 and spark_level: 100 

In this example, we are omitting the spark_level parameter, and hence the default value assigned to the parameter is used. It is important to note that undefined is considered as an absence of parameter value; consider the following line of code, for example:

    render(undefined,10); //Fog Level: 0 and spark_level: 10 

While providing default values of parameters, it is possible to refer to other parameters as well:

    function t(fog_level=1, spark_level=fog_level){
      console.log(`Fog Level: ${fog_level} and spark_level: 
       ${spark_level}`) 
      //Fog Level: 10 and spark_level: 10 
    } 
    function s(fog_level=10, spark_level = fog_level*10){ 
      console.log(`Fog Level: ${fog_level} and spark_level:
       ${spark_level}`) 
      //Fog Level: 10 and spark_level: 100 
    } 
    t(10); 
    s(10); 

Default parameters have their own scope; this scope is sandwiched between the outer function scope and the inner scope of the function. If the parameter is shadowed by a variable in inner scope, surprisingly, the inner variable is not available. The following example will help explain this:

    var scope="outer_scope"; 
    function scoper(val=scope){ 
      var scope="inner_scope"; 
      console.log(val); //outer_scope 
    } 
    scoper(); 

You may expect val to get shadowed by the inner definition of the scope variable, but as the default parameters have their own scope, the value assigned to val is unaffected by the inner scope.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.9.124