• JS基础:函数


    函数声明和函数表达式

      在 JS 中定义函数的方式有两种:一种是函数声明,一种是函数表达式。

    例如:

    //函数声明
    function fun() {
      ...
    }
    //函数表达式
    var f = function() {
      ...
    }

    它们的区别在于 JS 会把函数声明提升到作用域顶部,而函数表达式只有在执行到该语句时才会生效

    关于函数的其他注意事项:

    1、函数名后面跟圆括号 "()" 表示立即执行该函数,例如:

      var test = fun(); //表示执行 "fun" 这个函数,并将返回值赋值给 "test" 变量

      var test = fun; //表示将 "fun" 函数的指针赋值给 "test" 变量,"test" 是该函数的一个引用

    2、函数的 “arguments” 对象是一个参数数组,可以使用 “arguments” + 下标的方式访问传入函数中的参数

    使用匿名自执行函数模拟块级作用域

      JS 中只有全局作用域和函数级作用域,并没有 C++ 那种花括号包裹起来的块级作用域,但是可以通过匿名自执行函数模拟块级作用域

    例如:

    (function() {
      ...
    })();

    以上代码定义并立即调用了一个匿名函数,将这个匿名函数包含在一对圆括号中是因为 "()" 这个运算符只对函数表达式有效,而 "function" 是 JS 中的一个关键字,位于句首表示函数声明,是不能被执行的。

    高阶函数

      高阶函数是指至少满足下列条件之一的函数:

    1、函数可以作为参数被传入

    2、函数可以作为返回值输出

    例如:

    var isString = function(obj) {
        return typeof(obj) == 'string';
    }
    var isNumber = function(obj) {
        return typeof(obj) == 'number';

    这两个用于判断数据类型的函数中的大部分代码都是可以重复利用的,如果以后还要扩展的话总是需要重新定义一个函数,而使用高阶函数就可以避免这些问题

    例如:

    function isType(type) {
        return function(obj) {
            return typeof(obj) == type;
        }
    }
    var isString = isType('string');
    var isNumber = isType('number');
  • 相关阅读:
    ubuntu /etc/rc.local 不执行
    HTML中设置页面内嵌跳转
    JS使用AudioContext播放音乐
    Unity实现摄像机以某个物体为中心旋转
    Unity中实现通过鼠标对物体进行旋转平移缩放
    解决Windows上无法创建以点开头的文件问题
    解决FBX模型导入Unity后没有贴图的问题
    nedb中使用update更新数据的原理
    Electron 渲染进程中解决require is not defined的问题
    Base64转Blob的方式
  • 原文地址:https://www.cnblogs.com/blog-cxj2017522/p/9001862.html
Copyright © 2020-2023  润新知