最近,跟身边学前端的朋友了解,有很多人对函数中的返回的用法和意思理解的比较模糊,这里写一篇文章跟大家一起探讨一下返回的用法。
<强> 1定义强>
返回,从字面意思来看就是返回,官方定义返回语句将终止当前函数并返回当前函数的值,可以看下下面的示例代码:
& lt; !DOCTYPE html> & lt; html lang=癳n”比; & lt; head> & lt;元charset=皍tf - 8”比; & lt; title> Title & lt; script> 函数func1 () { 而(真){ 返回1; } }; 警报(func1 ()); & lt;/script> & lt;/head> & lt; body> & lt;/body> & lt;/html>
可以看到我在函数里面写了一个死循环,然后在下面调用,在没有写返回语句时浏览器会一直执行循环内的语句,直接卡死;
而写了返回语句后,直接中断了函数,并且给函数返回了一个数值1,意思就是当函数执行后,函数体将被赋值为函数的返回值,这里会被返回1;
<强> 2写法强>
官方定义返回后面可以跟一个值,也就是说可以跟javascript中的任何数据类型,数字,字符串,对象等,当然也可是再返回一个函数,举个栗子:,,
& lt; !DOCTYPE html> & lt; html lang=癳n”比; & lt; head> & lt;元charset=皍tf - 8”比; & lt; title> Title & lt; script> 函数func1 () { 返回函数(){ 提醒(1); } }; 警报(func1 ());//! func1 () ();这个注释是通过自执行函数调用返回的函数 & lt;/script>14 & lt;/head>15 & lt; body>16 17 & lt;/body>18 & lt;/html>
示例图片:
<强> 3练习>强,,,
(1)练习1
那么既然可以返回一个函数,我们就将下面的代码改写为一个回调函数的形式:
原代码:
& lt; !DOCTYPE html> & lt; html lang=癳n”比; & lt; head> & lt;元charset=皍tf - 8”比; & lt; title> Title & lt; script> 如果提示(“输入数字1 ')==1){ !函数(){ alert('输对了'); }() 其他}{ !函数(){ alert('输错了'); }() } & lt;/script> & lt;/head> & lt; body> & lt;/body> & lt;/html>
改写后:
& lt; !DOCTYPE html> & lt; html lang=癳n”比; & lt; head> & lt;元charset=皍tf - 8”比; & lt; title> Title & lt; script> 函数func1 () { 如果提示(“输入数字1 ')==1){ 返回函数(){ alert('输对了'); } 其他}{ 返回函数(){ alert('输错了'); } } } ! func1 () (); & lt;/script> & lt;/head> & lt; body> & lt;/body> & lt;/html>
改写前是通过如果语句来判断执行哪个函数;改写后是通过如果语句判断返回哪个函数,然后在下面调用;并没有什么意义只是帮助我们理解一下返回;
(2)练习2
通过返回语句来实现一个循环。
思路:既然返回语句可以返回一个函数,那么就是说可以返回它自己本身,在后面调用时就能实现一个循环的功能,
& lt; !DOCTYPE html> & lt; html lang=癳n”比; & lt; head> & lt;元charset=皍tf - 8”比; & lt; title> Title & lt; script> var i=1;//定义循环变量 函数func1 () { 我+ +;//改变循环变量 如果(i详解JavaScript中返回的用法