JavaScript------函数的返回值,函数的作用域及声明提前

一、函数的返回值

可以使用return 来设置函数的返回值
返回值可以是任意的数据类型,也可以是一个对象,也可以是一个函数

函数返回值语法:

return 值;

注意:

return后的值将会作为函数的执行结果返回
* 可以定义一个变量,来接收该结果
*
* 在函数中return后的语句都不会执行
*
* 如果return语句后不跟任何值就相当于返回一个undefined
* 如果函数中不写return,则也会返回undefined
*
* return后可以跟任意类型的值

举例:创建一个函数,用来计算三个数的和

function sum(a,b,c){
				var d = a + b + c;
				return d;
			}
var result = sum(1,2,3);
			console.log("result ="+result);

调用函数
变量result的值就是函数的执行结果
函数返回什么result的值就是什么

break 、continue 、return 之间的区别

			
			 break;
			 使用break可以退出当前循环
			 
			 continue;
			 使用continue用于跳过当次循环
			 
			 return;
			 使用return可以结束整个函数
			 

二、函数的作用域

函数作用域的定义:

作用域(scope)指一个变量的作用的范围
js中一共有两种作用域:一种是全局作用域,另一种是函数作用(局部作用域)

全局作用域

直接编写在script标签中的js代码,都在全局作用域
全局作用域在页面打开时创建,在页面关闭时销毁
在全局作用域中有一个全局对象window,它代表的是一个浏览器窗口,它由浏览器创建,我们可以直接使用
在全局作用域中:创建的变量都会作为window对象的属性保存 ;创建的函数都会作为window对象的方法保存
全局作用域中的变量都是全局变量,在页面的任意的部分都可以访问的到

函数作用域

调用函数时创建函数作用域,函数执行完毕以后,函数作用域销毁
每调用一次函数就会创建一个新的函数作用域,他们之间是互相独立的
在我函数作用域中可以访问到全局作用域的变量
在全局作用域中无法访问到函数作用域的变量
当在函数作用域中操作一个变量时,它会先在自身作用域中寻找,如果有就直接使用;如果没有则向上一级作用域中寻找,直到找到全局作用域;如果全局作用域中依然没有找到,则会报错ReferenceError
在函数中要访问全局作用域变量可以使用window对象(window.×)
在函数中,不使用var声明的变量都会成为全局变量
定义形参就相当于在函数作用域中声明了变量

			var a = 10;
			function fun(){
				
				//var a = "我是函数中的变量a";
				var b = 20;
				
				console.log(a);
			}
			fun();
			//console.log(b);

注意: 在函数作用域中也有声明提前的特性 ;使用var关键字声明的变量,会在函数中所有代码执行之前被声明;函数声明也会在函数中所有代码执行之前执行

三、声明提前

声明提前包括两种,一种是变量的声明提前,另一种是函数的声明提前

变量的声明提前

使用var 关键字声明的变量,会在所有的代码执行之前被声明(但是不会赋值),但是如果声明变量时不使用var关键字,则变量不会被声明提前

函数的声明提前

使用函数声明形式创建的函数 function 函数名(){} ;它会在所有的代码执行之前就被创建,所以我们可以在函数声明前来调用函数; 使用函数表达式创建的函数,不会被声明提前,所以不能在声明前调用

			console.log("a="+a);
			var a=10;
			//函数声明,会被提前创建
			f();
			function f(){
				console.log(111);
			}
			//函数表达式,不会被提前调用
			var fun = function(){
				console.log(222);
			}
			fun();
发布了18 篇原创文章 · 获赞 16 · 访问量 2964

猜你喜欢

转载自blog.csdn.net/qq_43078424/article/details/103586790
今日推荐