美文网首页
函数问题

函数问题

作者: 帅帅哒小白 | 来源:发表于2016-11-14 21:34 被阅读20次

变量的作用域

局部变量:定义位置在函数内部用var定义的变量,作用域是在定义的当前函数内部,只对当前函数有作用。
注意:如果在函数的内部不用var定义的变量默认是全局变量。

变量的提升

变量的提升?难道变量也像玩游戏一样,也会打怪升级?!其实不然。
首先,在一个程序内当局部变量和全局变量同名时,是优先使用局部变量的。但是当程序进入新的函数时,他会将所有的变量声明放在函数开始的位置,仅仅会提升变量的声明,而不会提升变量的赋值。这就是传说中变量的提升!
<script type="text/javascript"> var num = 10; function f(){ console.log(num); var num = 20; } f(); </script>

这里就定义了一个同名的局部变量和全局变量,在函数体内打印变量num的值。但是,奇怪的是此时打印出的num值为undefined,很奇怪吧!这就是因为变量的提升而导致的问题,而且还因为局部变量和全局变量同名。所以在一个程序中定义变量,尽量不要出现两个同名的变量。

函数也是一种数据

这个就直接上代码吧。
function fun(){ console.log("hello world"); } var f = fun; f(); fun();

这里就是用变量f保存了函数fun,可以通过变量f直接访问函数fun();此时,f与fun是等价的,结果会两次打印"hello world"。

函数也是一种数据.PNG

匿名函数

匿名,匿名,也就是把名字给隐藏了,没有名字的函数。
当匿名函数没有赋值给另一个变量时有两种优雅的用法:

  1. 直接传递给函数
  2. 执行某些一次性的代码

function m(mySum,q,w){ return mySum(q,w); } var ret = m(function(a,b){ return a+b; },1,2) console.log(ret);

这里按照程序的执行来说;先是执行打印ret,通过ret去寻找m(function(a, b){return a + b;}, 1, 2);这里的function(a, b){return a + b;}可以看出是一个参数;紧接着又和m(mySum, q, w)匹配起来,执行m(mySum,q,w){return mySum(q,w)};数据1和2通过m方法传递给了q与w;通过mySum(q,w),传递给了a和b;两相结合,可以得出ret的值为3。

即时函数

即时函数也被称为自执行函数,当函数声明之后立即执行;
组成:(匿名函数)(给第一个小括号中的匿名函数传递参数);
第二个小括号表明函数立即执行,并且给函数传参。
代码如下:
(function(str){ console.log(str); })("Hello World")

这里会直接输出"Hello World"字符串。

总结:通过这次学习,也使我认识到了函数的各种不一样的使用方法,又涨见识啦!

相关文章

  • 函数问题

    变量的作用域 局部变量:定义位置在函数内部用var定义的变量,作用域是在定义的当前函数内部,只对当前函数有作用。注...

  • Mysql 函数

    函数问题

  • matlab函数问题

    mat2cell

  • 函数对象问题

    function fun(n,o){ console.log(o); return { fu...

  • 函数极值问题

    函数有极值,就求导,然后令导数=0(因为此时切线平行X轴,斜率为0,而斜率就是导数)求出X值带入原函数求Y即可 从...

  • JS函数问题

    函数声明和函数表达式有什么区别 函数表达式和函数声明语句包含相同的函数名,并且都创建了新的函数对象,他们的区别主要...

  • JavaScript笔记2

    this、高阶函数、闭包、箭头函数、generator 1. this 函数this指向问题:(1)this和它声...

  • 用Swift的函数式编程解决硬币问题

    用Swift的函数式编程解决硬币问题 用Swift的函数式编程解决硬币问题

  • 7、TypeScript表达式与循环

    一、箭头表达式 用来声明匿名函数,消除传统匿名函数的this指针问题 应用场景: 解决传统函数中this指向的问题...

  • 理解 Conjugate Function

    共轭函数是最优化问题中非常重要的概念,常用来在原问题和对偶问题之间进行转换。 定义 对于原函数,其共轭函数为其中,...

网友评论

      本文标题:函数问题

      本文链接:https://www.haomeiwen.com/subject/rhncpttx.html