JS函数基础---你会了吗?

一、定义:
函数也是一个对象,可以重复执行的代码块,完成特定功能的一段代码,使用typeof检查会返回function。
二、函数常用定义方式:
(1)函数声明式:
function sun(a,b){
	return a+b;
}
sum(1,2);

(2)函数表达式声明方式:

var sum = function(a,b){
	console.log(a+b);
}
sum(1,2);
三、arguments对象:
Arguments维数组对象,里面的指针是callee,用来装函数里面的实参,拿到传递实际参数的个数。
四、函数直接声明和函数表达式声明:
  • 函数声明必须有函数名,而函数表达式声明的函数名可以省略
  • JS解析时会先把函数声明提前到整个作用域的最前面
  • JS解析时会把变量提升到最前面
四、回调函数:
定义:把一个函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。
五、作用域链:
简单说明:从里往外走,单条链路。一般情况下变量取值会在本作用域中查找,如果当前作用域中没有就会向上一级作用域中查找,直到查到全局作用域,这一查找过程就会形成作用域链。
  • 只有函数可以制造作用于结构,那么只要是代码,就至少有一个作用域
  • 凡是代码中有函数,那么这个函数就构成另一个作用域
  • 如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域

代码案例:

        var color = 'yellow';
        function getColor(){
            var anotherColor = "red";

            function swapColor(){
                var tmpColor = color;
                color = anotherColor;
                anotherColor = tmpColor;
            }
            swapColor();
        }
        getColor();
        console.log(color);

画图分析:
在这里插入图片描述
解析:代码是从上往下执行(根据变量提升)会先到变量color再到函数getColor,进入getColor()里面同样的方式进入到swapColor函数因为里面没有定义color,一层一层往外找找到color为yellow。此时tmpColor 为red,同样color 为red。

六、预解析
(1)概念:JS代码的执行是由浏览器中的JS解析器来执行的,JS代码执行时分两个过程,预解析过程和代码执行过程。 (2)预解析过程:
  • 把变量的声明提升到当前作用域的最前面,只会提升声明,不会提升赋值。
  • 把函数的声明提升到当前作用域的最前面,不会提升调用。

代码实例:

console.log(fn2);
function fn2(){
   console.log("我是函数");
}
var fn2 = "我是变量";
console.log(fn2);

在这里插入图片描述

解析:JS解析时把函数fn先提升但是不会提升调用所以我们先看到的是在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值