首页 > 解决方案 > 函数中何时允许使用速记?

问题描述

我一直在这个网站上看到很好的帮助示例,并且一直对以下示例感到好奇。我在这个网站上搜索了速记示例,但找不到对以下类型语法的确切解释。

我已将此代码粘贴到我的网站中,它完全符合我的要求,但是当编码人员使用快捷方式时,它永远不会停止点击我,因为我不知道快捷方式。

该函数的实际功能并不相关,但为了清楚起见,我想做的只是使用 javascript 搜索当前 URL 以查找特定 GET 变量的存在,然后对其内容或不存在做出反应。

请不要尝试用更优雅的函数来求解这个方程。我目前正在确切地询问 BELOW 函数是如何根据其特定语法实际解决我的问题的。我永远不明白,除非完整版本完全没有捷径或速记。

下面的功能是什么,它使用简写和捷径(我从这个网站粘贴并工作的那个)实际上是长手说的?

function findGetParameter(parameterName) {
    var result = "nope",
        tmp = [];
    location.search
        .substr(1)
        .split("&")
        .forEach(function (item) {
          tmp = item.split("=");
          if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]);
        });
    return result;
}

当我试图重写它以便我能理解时,我当然打破了它。我认为开头的逗号是关键,因为我重写的内容如下所示,但不起作用。

function findGetParameter(parameterName) {
    var result = "nope";
    tmp = [];
    location.search.substr(1).split("&").forEach(function (item) {
        tmp = item.split("=");
        if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]); 
    });
    return result;
}

当变量“结果”更改为由实际函数计算的值时,我感到很困惑。逗号是否在我损坏的重写上方粘贴方式的第一行中执行此操作?

我经常尝试重写从该站点粘贴的代码,但它总是会破坏它!哈哈。所以我有时并没有真正了解我是如何解决它的,而是我知道我可以从 StackOverflow 复制和粘贴并解决它。哈哈哈。为你们所有人感谢主!

看起来我在上面做这个例子的方式要长得多,这可能是编码人员避免这样做的原因,但我无法理解允许上面例子的语法。

我的直觉告诉我做类似下面的事情?

function findGetParameter(parameterName) {
    var result = "nope";
    var tmp = new Array();
    tmp = [];
    
    var location_search = "";
    location_search = location.search.substr(1);

    var location_search_split = "";
    location_search_split = location_search.split("&");

    forEach( /* SUPER LOST HERE! hahahah */ function (item) {
    /* I assume this a short cut to do something like PHP version of */
    /* foreach( location_search_split as $key=>$value ) ???? */

    tmp = item.split("=");
    if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]);
    
    result = ????? // WHEN does the function set the value of the RESULT variable?
    });
    
    return result;
}

我喜欢这个网站,多年来我从中得到了很多。我是一个非常业余的程序员,每年使用这个网站数百万次。你们都很棒,我喜欢通读以找到这些东西,因为我知道你们中的一个人总会解决它!

但我真的是一个业余爱好者,只是厌倦了看不到更好的速记!

感谢您提前耐心等待您的回答并没有取笑我。如果你看到我多年来用 javascript/php/jquery 完成的一些事情,你会对我的独创性印象深刻,而不是对我的天真不感兴趣!哈哈哈。但有时我觉得我正在用 iMOVIE 1.0 制作星球大战。

标签: javascriptsyntaxshortcut

解决方案


推荐阅读