JavaScript学习心得(六)

时间:2021-12-08 14:05:24

 

函数

  对函数参数没有任何类型检查(弱类型),在必要时在函数内加上类型检查(typeof);

  JavaScript的函数参数无法设置默认值(可以通过检查参数,当为undefined时设置一个值

function functionname(someVar){
  if(typeof someVar =='undefined'){
    someVar = 'default value';
  } }

 

),如果函数调用的时候没有传递参数值,那个参数的值就是undefined,可以通过这一知识点确认参数变量不为undefined来检测函数参数是否接受到值

1 function functionName(someVar){
2   if(typeof someVar =='undefined'){
3     }else{
      }
4 }

  当函数调用时要跳过参数进行下一个参数赋值,使用undefined代替忽略的参数

1 function functionName(a,b,c){
2   }
3 functionName(a,undefined,c);

  简单值(数字,字符串,布尔值)是按值传递,不改变函数外的变量;而对象和数组按照引用传值,因为是对原变量的引用,这值将同步改变,这样的好处在于:复杂的数据类型可以作为容器将复杂的数据带到函数外。

  函数都是通过return语句返回值(只执行一次),如果函数没有return语句及所用return语句不包括返回值,自动返回undefined。

  在函数外定义的变量具有全局作用域,函数的参数自动具有函数(局部)作用域。只要使用var关键字,在函数中声明的变量就具有函数作用域(否则为全局)。当一个全局变量和局部变量同名是优先使用局部变量。