美文网首页
JavaScript-函数

JavaScript-函数

作者: 权游一里 | 来源:发表于2018-05-08 10:42 被阅读0次

JavaScript可以用关键字function来定义函数,函数的调用也不必放在函数声明之后,因为JavaScript存在提升(Hoisting)机制。

提升是JavaScript默认将当前作用域提升到前面去的行为,应用在变量的声明与函数的声明。

JavaScript函数的typeof类型为“function”,它也有属性和方法,也可以说它是一个对象。

函数声明

function funName(parameters){
  //....
}

//函数表达式,也是匿名函数(没有名称)
var fun = function(a,b){ //....};
fun(3,4);

Function()构造函数

var fun = new Function("a","b","return a-b");
fun(4,3);

不过声明函数时,使用function关键字就可以了。

函数自调用

(function(a,b){
  //....
})(3,4);

函数的属性和方法

  • arguments: 是一个参数数组,保存参数信息。
  • call():预定义的函数方法
  • apply():预定义的函数方法
var myObject, myArray;
function myFunction(a, b) {
    return a * b;
}
//按函数参数格式传入参数
myObject = myFunction.call(myObject, 10, 2);
//传入参数数组
myArray = [10, 2];
myObject = myFunction.apply(myObject, myArray);

嵌套函数

在 JavaScript 中,所有函数都能访问它们上一层的作用域。
JavaScript 支持嵌套函数。嵌套函数可以访问上一层的函数变量。

function add() {
    var counter = 0;
    function plus() {counter += 1;}
    plus();    
    return counter; 
}

闭包

闭包就是一种允许函数向关联的父级作用域寻址的访问特权。可以访问另一个函数作用域变量的函数,一般是定义在外层函数中的内层函数。

var add = (function () {
    var counter = 0;
    return function () {return counter += 1;}
})();
 
add();
add();
add();

特点

  • 占用更多内存
  • 不容易被释放

相关文章

  • 函数节流(throttle)与函数去抖(debounce)

    JavaScript-性能优化,函数节流(throttle)与函数去抖(debounce)JS魔法堂:函数节流(t...

  • JavaScript-函数

    JavaScript可以用关键字function来定义函数,函数的调用也不必放在函数声明之后,因为JavaScri...

  • JavaScript-函数

    函数大家应该都熟悉,定义啊啥的就不多说,这边主要介绍JavaScript函数的一些特点和需要注意的地方。 返回值:...

  • JavaScript-函数

    函数是值。它们可以在代码的任何地方被分配,复制或声明。 因为sayHi后没有括号,不会执行函数在代码块的结尾不需要...

  • JavaScript-什么是函数

    JavaScript-什么是函数 函数是完成某个特定功能的一组语句。如没有函数,完成任务可能需要五行、十行、甚至更...

  • 04、JavaScript-函数

    每天一句:想说会有多少人问自己一下几个问题“你这辈子到底要什么,要做怎么样的人?你现在能够做什么?你正在做什么?你...

  • JavaScript-数组、函数

    1 - 数组 1.1 数组的概念 数组是指一组数据的集合,是一个有序的列表,其中的每个数据被称作元素,在数组中可以...

  • JavaScript-函数进阶

    1 - 函数的定义和调用 1.1 函数的定义方式 命名函数function fn(){} 匿名函数var fn =...

  • JavaScript-内置函数

    一、内置函数 二、字符串函数 2-1:substr(起始位置,截取长度) 2-2:substring(起始位置,结...

  • Javascript-函数闭包

    javascript函数闭包一直是本人没搞懂,概念模糊的盲点。在项目中也遇到过,只是当真正的代码放我面前的时候我还...

网友评论

      本文标题:JavaScript-函数

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