2.函数参数
2.1 函数参数
eg:基本实例:
function fn(param1,param2,param3){}
函数参数(parameter)指的是在函数定义中列出的名称
函数参数(argument)指的是传递到函数或由函数接收到的真实值
2.2 参数规则
JavaScript函数定义不会为参数(parameter)规定数据类型
JavaScript函数不会对所传递的参数(argument)实行类型检查
JavaScript函数不会检查所接收参数(argument)的数量
如果参数传递小于定义的数量时,从前向后赋值,未被赋值的参数值为undefined
function fn1(a,b,c){
console.log(a,b,c)
}
fn1(1) // 1 undefined undefined
也可以对定义的参数设置默认值
function fn1(a=0,b=0,c=0){
console.log(a,b,c)
}
fn1(1) // 1 0 0
2.3 arguments对象
JavaScript函数有一个名为arguments的内置对象。
arguments对象包含函数调用时使用的参数数组。
function fn1(a = 0, b = 0, c = 0) {
let sum=0
for(let i = 0;i<arguments.length;i++){
sum+=arguments[i]
}
console.log(sum)
}
fn1(2,2,3,8) // 15
2.4 函数调用
在函数被定义时,函数内部的代码不会执行。
在函数被调用时,函数内部的代码会被执行。
调用函数通常也可以说"启动函数"或”执行函数“。
function myFn(a,b){
return a * b;
}
myFn(3,6) // 18
在JavaScript中,使用存在一种默认的全局对象。
在HTML中,默认全局对象时HTML页面本身,所有上面的函数”属于“HTML页面。
在浏览器中,这个页面对象就是浏览器窗口。上面的函数自动成为一个窗口函数。myFn()与window.myFn()是同一个函数
Tip:全局变量、方法或函数很容易在全局对象中产生命名冲突和漏洞。
2.5 this
在JavaScript中,被称为“this”的事物,指的是拥有当前代码的对象。
this的值,在函数中使用时,是拥有该函数的对象。
this不是变量,是关键词,无法改变this的值
当不带拥有者对象调用对象时,this的值为全局对象。
在web浏览器中,全局对象就是浏览器对象。