JavaScript中的函数(声明提升)

JavaScript函数的一些相关内容

函数

声明提升:

1.变量声明的提升:
	使用var声明的变量,会提前到当前作用域的开始位置被声明,而在原来的位置
被赋值。
	举个栗子:
	console.log(a);		//undefined
    var a = 1;
    console.log(a);		//1
	在上面的代码中,在没有定义变量之前打印a,得到undefined,而并不是not
defined,说明此时变量已经被声明,只是还没有被赋值。
	上面的代码相当于↓↓↓:
	var a;
	console.log(a);		//undefined
    a = 1;
    console.log(a);		//1
2.函数的提升:
	在当前作用域内声明的function函数,在被解析时会整体提升,该函数可以在
当前作用域内的任何位置被调用。
	举个栗子:
	 fn();				//hello
     function fn(){
         console.log("hello");
     }
	 fn();				//hello
	上面的代码相当于↓↓↓:
     function fn(){
         console.log("hello");
     }
     fn();				//hello
	 fn();				//hello

那么都会被提升,顺序是怎样的呢?

	再举个栗子:
	function fn(){
         console.log(a);     //function a(){2}
         var a = "hello";
         console.log(a);     //hello
         function a(){1}
         console.log(a);     //hello
         a = "world";
         console.log(a);     //world
         function a(){2}
         console.log(a);     //world
     }
	上面的代码相当于↓↓↓:
	function fn(){
		var a;
		function a(){1}
		function a(){2}
		console.log(a);     //function a(){2}
		a = "hello";
		console.log(a);     //hello
		console.log(a);     //hello
		a = "world";
		console.log(a);     //world
		console.log(a);     //world
	}
从这个栗子可以看出:
	当函数名和变量重名,变量的提升更高,函数的提升在变量的下面,使得函数
生效

声明:
纯属个人总结,有错误欢迎大家指出,互相学习,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值