美文网首页
函数与作用域

函数与作用域

作者: 知更鸟_b4d4 | 来源:发表于2017-09-02 00:12 被阅读0次

函数声明和函数表达式有什么区别?

传送门(mdn推荐的文章)
 函数声明:function functionName(){}
 函数表达式:var fn = function(){}
 函数声明会提前,函数表达式可以省略标识符(函数名)。
函数声明时就已经完成函数的构建了,而函数表达式是在程序运行到此处才完成构建(函数表达式的变量声明 完之后值为undefined),所以在重名的情况下,表达式会替代声明
示例

示例
另外mdn里还有一种条件创造函数(Conditionally created functions),我目前还不清楚什么时候应该使用这种方式来定义函数。希望各位大牛指教。

什么是函数的声明前置?什么是变量的声明前置?

所谓的变量声明前置就是在一个作用域块中,所有的变量都被放在块的开始出声明。
和变量声明前置一样,执行代码之前会先读取函数声明,只要函数在代码中进行了声明,无论它在哪个位置上进行声明,js引擎都会将它的声明放在范围作用域的顶部。

arguments 是什么

arguments是函数的形参,它是一个类数组对象。

函数重载怎样实现

  • JS中不存在函数的“重载”,同名函数会被覆盖,但是JS却可以利用函数体针对不同的参数调用相应的逻辑来达到其他语言的函数重载的效果。
  • 其他语言的函数重载样例:

function int translateNumber(parseInt(a),parseInt(b)){
statement;
}
function float translateNumber(parseFloat(a),parseFloat(b)){
statement;
}

  • JS伪"重载"样例:

function getInfOfPeople(name,age,sex) {
if(name){
console.log(name);
}
if(age){
console.log(age);
}
if(sex){
console.log(sex);
}
}
getInfOfPeople(2,3);
getInfOfPeople(2,3,1);

立即执行函数表达式是什么?有什么作用

函数构建后直接就可以运行的函数叫做立即执行函数(传送门)
作用:从传送门中的文章来看,作用就是利用闭包来形成私有变量。

相关文章

  • 执行上下文、作用域链、this、闭包

    javascript 执行的是词法作用域,即静态作用域。与之相对的是动态作用域。 静态作用域:函数的作用域在函数定...

  • 作用域和作用域链

    作用域和作用域链 作用域 作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在Java...

  • 作用域

    何为作用域 任何编程语言都有作用域的概念,简单来说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可...

  • JavaScript中的作用域和作用域链(一)

    作用域 1.作用域的概念: 变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。 2.全局作用域与...

  • JavaScript静态作用域解析

    静态作用域与动态作用域 因为 JavaScript 采用的是词法作用域,函数的作用域在函数定义的时候就决定了。而与...

  • 词法作用域 - 2023-02-09

    静态作用域与动态作用域 因为 JavaScript 采用的是词法作用域,函数的作用域在函数定义的时候就决定了。而与...

  • JS基础知识(2) -- 作用域和作用域链

    作用域 作用域就是变量与函数的可访问范围 全局作用域 函数作用域 ES6块级作用域 ES5没有块级作用域,ES6有...

  • 作用域链

    一、作用域 定义:作用域就是变量与函数的可访问范围。作用域控制着变量与函数的可见性和生命周期。 1、全局作用域(G...

  • JavaScript作用域学习笔记

    @(JS技巧)[JavaScript, 作用域] JavaScript作用域学习笔记 概念: 作用域就是变量与函数...

  • 我的JS笔记 -- 作用域

    作用域和作用域链概念 作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaSc...

网友评论

      本文标题:函数与作用域

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