Javascript 函数中何时允许使用速记?

Javascript 函数中何时允许使用速记?,javascript,syntax,shortcut,Javascript,Syntax,Shortcut,我一直在这个网站上看到很好的帮助示例,并且一直对下面的示例感到好奇。我在这个网站上搜索了一些速记示例,但找不到下面类型语法的确切解释 我已经将这段代码粘贴到我的网站上,它完全符合我的要求,但当编码人员使用快捷方式时,它永远不会停止与我一起点击,因为我不知道快捷方式 该函数的实际功能没有那么重要,但为了清楚起见,我只想用javascript搜索当前URL以查找特定GET变量的存在,然后对其内容或不存在作出反应 请不要试图用更优雅的函数来解这个方程。我目前正在问下面的函数究竟是如何根据其特定语法解决

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

我已经将这段代码粘贴到我的网站上,它完全符合我的要求,但当编码人员使用快捷方式时,它永远不会停止与我一起点击,因为我不知道快捷方式

该函数的实际功能没有那么重要,但为了清楚起见,我只想用javascript搜索当前URL以查找特定GET变量的存在,然后对其内容或不存在作出反应

请不要试图用更优雅的函数来解这个方程。我目前正在问下面的函数究竟是如何根据其特定语法解决我的问题的。我永远不会明白,除非完整的版本是一路打印出来,没有捷径或速记

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

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;
}
当变量“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制作《星球大战》。

我在这里有点迷茫,问题是什么时候使用速记,什么时候不使用?所以不是博客/论坛,也不是速记,看起来像普通的js,在js中,返回值可以链接,因为数据类型上有原型,也就是说,返回的字符串附带了所有的字符串原型函数。您的右forEach循环在iterable项上,可以将其更改为for of循环,但是整个findGetParameter函数应该更改为使用几行,或者您的第一个片段和第二个片段几乎是等效的,唯一的区别是第二个片段分配给一个全局
tmp
变量(缺少
var
声明)。但是它应该仍然可以工作。您遇到了什么错误?什么输入导致了不同的结果?谢谢大家。这是每次看到它时都会给我带来麻烦的一行。//if(tmp[0]==parameterName)result=decodeURIComponent(tmp[1]);//没有大括号,在不知道速记结构的情况下,我永远不相信它会给我什么。可能是在这里重新键入时,我没有粘贴重新键入的非工作版本,而是意外地键入了一些实际工作的内容。在尝试将速记拆分时,我在结果之前添加了分号,我想,结果就是这样pt给了我一些问题。但对Ranjit来说,是的,我想知道什么时候使用速记,什么时候不使用速记。我在这里有点迷茫,问题是什么时候使用速记,什么时候不使用?所以不是博客/论坛,它不是速记,它看起来像普通的js,在js中返回值可以链接,因为数据类型的原型化,即返回字符串has所有的字符串原型函数都附加在它上面。你的右forEach在iterable项上循环,你可以将它更改为for of循环,但是整个findGetParameter函数应该更改为使用几行,或者你的第一个和第二个代码段几乎是等价的,唯一的区别是第二个代码段分配给一个全局
tmp
变量(缺少
var
声明)。但是它应该仍然可以工作。您得到了什么错误?什么输入导致了不同的结果?谢谢大家。这是每次看到它都会给我带来麻烦的一行。//如果(tmp[0]==参数名称)结果=解码组件(tmp[1]);//没有大括号,在不知道速记结构的情况下,我永远不相信它会给我什么。可能是在这里重新键入时,我没有粘贴重新键入的非工作版本,而是意外地键入了一些实际工作的内容。在尝试将速记拆分时,我在结果之前添加了分号,我想,结果就是这样pt给了我麻烦。但对兰吉特来说,是的,我很想知道什么时候该用,什么时候不该用速记。