美文网首页
今天是我在乐字节学习的第18天

今天是我在乐字节学习的第18天

作者: 乐学小乐 | 来源:发表于2020-11-18 11:44 被阅读0次

今天是我在乐字节教育学习的第18天,今天主要学习的内容是JavaScript基础语法之函数的参数、调用和return语句,函数的作用域

函数的参数、调用和return语句

参数

​ 函数运行的时候,有时需要提供外部数据,不同的外部数据会得到不同的结果,这种外部数据就叫参数,定义时的参数称为形参,调用时的参数称为实参

  • 实参可以省略,那么对应形参为undefined
  • 若函数形参同名(一般不会这么干):在使用时以最后一个值为准。
  • 可以给参数默认值:当参数为特殊值时,可以赋予默认值。
  • 参数为值传递,传递副本 ;引用传递时传递地址,操作的是同一个对象。
// 调用函数时,实参可以省略,则对应形参为undefined
function add(a , b) {
    console.log(a + "+" + b + "=" + (a + b));
}
add(3,4,5)//3+4=7
add(1);//1+undefined=NaN
add();//undefined+undefined=NaN

// 若函数形参同名(一般不会这么干):在使用时以最后一个值为准
function add2(a , a) {
    console.log(a);
}
add2(1,2);

// 给参数默认值
function defaultValue(a){
    a = a || "a";
    return a;
}
console.log(defaultValue());
function f(a){
    //若参数a不为undefined或null,则取本身的值,否则给一个默认值
    (a !== undefined && a !== null) ? a = a : a = 1;
    return a;
}
console.log(f());

// 值传递
var num = 12;
function change(n) {
    n = 30;
}
change(num);
console.log(num);
// 引用传递
var obj = {name: "tom"};
function paramter(o) {
    o.name = 2;
}
paramter(obj);
console.log(obj.name);
// 给形参o赋予了新的数组
var obj2 = [1, 2, 3];
function paramter2(o){
    o = [2, 3, 4];
    o[1] = 3;
}
paramter2 (obj2);
console.log(obj2)

函数的调用

1. 常用调用方式

函数名([实参]);

​ 存在返回值可以变量接收,若接收无返回值函数则为undefined。

2. 函数调用模式

function add(a,b){
   return a+b;
} 
var sum = add(1,2) 
console.log(sum); 

3. 方法调用模式

var o = {
    m: function(){
         console.log(1); 
    } 
};
o.m();  

return

​ 函数的执行可能会有返回值,需要使用return语句将结果返回。return 语句不是必需的,如果没有的话,该函数就不返回任何值,或者说返回 undefined。

​ 作用:

​ 1. 在没有返回值的方法中,用来结束方法。

​ 2. 有返回值的方法中,一个是用来结束方法,一个是将值带给调用者。

函数的作用域

​ 函数作用域:全局 (global variable) 和 局部 (local variable)

1. 全局变量与局部变量同名问题

var box =1; // 全局变量
function display(box){
    var box = 3; // 此处box与全局变量box没有关系,这里的box为传递的参数,相当于新声明的局部变量
    var b = 2; // 局部变量
    console.log("box-->" + box);
}
display();
// b 不能访问
console.log("b-->" + b);

2. 在函数中定义变量时,若没有加var关键字,使用之后自动变为全局变量

function fun(){
    a = 100;
}
fun();
alert(a);

时间过得真快,今天的学习时间已经接近了尾声,今晚好好睡觉休息,准备好明天的学习吧!

相关文章

网友评论

      本文标题:今天是我在乐字节学习的第18天

      本文链接:https://www.haomeiwen.com/subject/mnidbktx.html