代码仅在未包装在函数中时才有效

用户8758206

真的不确定这里发生了什么,因为我是 JavaScript 的新手,但实际上无法弄清楚,即使在阅读了像这样的其他帖子之后:Simple function returns 'undefined' value出于某种原因,当我的代码放在函数中时,它返回“未定义”而不是真或假。

如果我使用没有函数的代码并a在第一行定义 var ,它可以正常工作:

var a = "wjebh ghbui ayub";
var b = (a.split(' ').join('')).split('a'); // creates array

var trueOrFalse = b.map(function(c, i){ // puts into array true/false for each index
    if (c[2] == 'b') {
        console.log('value: ' + c[2] + ' is b; true');
        return true;
    } else {
        console.log('false');
        return false;
    }
});

var answer = function(el) {
    // checks whether any element is true
    return el === true;
};
trueOrFalse.some(answer); // return true/false

但是当我将它添加到函数中时,它不起作用。

function bThreeAfterA(a) {
    var b = (a.split(' ').join('')).split('a'); // creates array

    var trueOrFalse = b.map(function(c, i){ // puts into array true/false for each index
        if (c[2] == 'b') {
            console.log('value: ' + c[2] + ' is b; true');
            return true;
        } else {
            console.log('false');
            return false;
        }
    });

    var answer = function(el) {
 // checks whether any element is true
        return el === true;     
    };

    trueOrFalse.some(answer); // return true/false
}

即使将其放入 IIFE,它也无法正常工作:

(function(){
    var a = "wjebh ghbui ayub";
    var b = (a.split(' ').join('')).split('a'); // creates array

    var trueOrFalse = b.map(function(c, i){ // puts into array true/false for each index
        if (c[2] == 'b') {
            console.log('value: ' + c[2] + ' is b; true');
            return true;
        } else {
            console.log('false');
            return false;
        }
    });

    var answer = function(el) {
        // checks whether any element is true
        return el === true;
    };
    trueOrFalse.some(answer); // return true/false
})();

我觉得我在这里做了一些非常愚蠢的事情,大多数人很容易发现。有人可以解释我在这里做错了什么吗?大概这是某种初学者语法错误。任何阅读资源的链接也会有所帮助。

卡西姆奥

我们都去过那里。

试一试吧。

function bThreeAfterA(a) {
    var b = (a.split(' ').join('')).split('a'); // creates array

    var trueOrFalse = b.map(function(c, i){ // puts into array true/false for each index
        if (c[2] == 'b') {
            console.log('value: ' + c[2] + ' is b; true');
            return true;
        } else {
            console.log('false');
            return false;
        }
    });

    var answer = function(el) {
 // checks whether any element is true
        return el === true;     
    };

    return trueOrFalse.some(answer); //ACTUALLY return true/false
}

console.log("Answer: " + bThreeAfterA("wjebh ghbui ayub")); // Returns true. 

当您对块范围之外的变量进行操作时,它们会持续存在。当他们在里面时,他们消失了。

因此,它“有效”,但当你在函数中使用它时它“无效”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Powershell 脚本仅在存在断点时才有效

来自分类Dev

SVG过滤器仅在样式属性中添加时才有效(Firefox)

来自分类Dev

仅在Perl中存在哈希条目时才有效地获取它

来自分类Dev

将文件发送到 blob 仅在 while 循环中调用函数时才有效

来自分类Dev

在C ++ Windows应用程序中引用本机C ++ DLL仅在作为引用添加时才有效

来自分类Dev

javascript获取文件类型仅在文件名称中包含1个点时才有效

来自分类Dev

Angular 仅在我指定 app.get("*"[...]); 时才有效;在我的 server.js 中

来自分类Dev

Javascript 函数仅在其他 javascript 函数被禁用时才有效

来自分类Dev

Java脚本代码仅在将其放在正文部分时才有效

来自分类Dev

Java脚本代码仅在将其放在正文部分时才有效

来自分类Dev

__doPostBack仅在页面上有LinkButton,Calendar或WizardStep控件时才有效

来自分类Dev

Mypy:具有某些方法的通用容器仅在应用附加协议时才有效

来自分类Dev

CSS文本过渡仅在HTML输入具有“ required”标签时才有效

来自分类Dev

push.default 仅在没有定义 ref 规范时才有效?

来自分类Dev

如何验证该字段大于仅在检查特定按钮时才有效

来自分类Dev

媒体查询断点仅在启用触摸模拟时才有效

来自分类Dev

glDrawArrays仅在我向其传递“错误”数据时才有效

来自分类Dev

页面上的自动滚动仅在 ctrl+单击使用 jquery 的按钮时才有效

来自分类Dev

数据绑定仅在 select ng-options 中使用 as 语法时才有效

来自分类Dev

wpf datagrid mousebinding leftdoubleclick 命令仅在项目已被选中时才有效

来自分类Dev

TWebBrowser - 它仅在显示其 Delphi 父窗体时才有效吗?

来自分类Dev

仅在插入断点时才有效的 iOS Drawer UI

来自分类Dev

为什么我的 tkinter 窗口仅在全局创建时才有效?

来自分类Dev

Nginx 仅在将工作进程用户设置为 root 时才有效

来自分类Dev

我的底部导航栏仅在我双击以切换片段时才有效

来自分类Dev

用户角色仅在Symfony2中注销后才有效

来自分类Dev

Active Directory Powershell 脚本仅在 Excel 中打开源 csv 后才有效

来自分类Dev

未捕获的 SyntaxError:await 仅在 async 函数中的 async 函数中有效

来自分类Dev

jQuery函数仅在手动将窗口调整为移动窗口大小但不刷新时才有效

Related 相关文章

  1. 1

    Powershell 脚本仅在存在断点时才有效

  2. 2

    SVG过滤器仅在样式属性中添加时才有效(Firefox)

  3. 3

    仅在Perl中存在哈希条目时才有效地获取它

  4. 4

    将文件发送到 blob 仅在 while 循环中调用函数时才有效

  5. 5

    在C ++ Windows应用程序中引用本机C ++ DLL仅在作为引用添加时才有效

  6. 6

    javascript获取文件类型仅在文件名称中包含1个点时才有效

  7. 7

    Angular 仅在我指定 app.get("*"[...]); 时才有效;在我的 server.js 中

  8. 8

    Javascript 函数仅在其他 javascript 函数被禁用时才有效

  9. 9

    Java脚本代码仅在将其放在正文部分时才有效

  10. 10

    Java脚本代码仅在将其放在正文部分时才有效

  11. 11

    __doPostBack仅在页面上有LinkButton,Calendar或WizardStep控件时才有效

  12. 12

    Mypy:具有某些方法的通用容器仅在应用附加协议时才有效

  13. 13

    CSS文本过渡仅在HTML输入具有“ required”标签时才有效

  14. 14

    push.default 仅在没有定义 ref 规范时才有效?

  15. 15

    如何验证该字段大于仅在检查特定按钮时才有效

  16. 16

    媒体查询断点仅在启用触摸模拟时才有效

  17. 17

    glDrawArrays仅在我向其传递“错误”数据时才有效

  18. 18

    页面上的自动滚动仅在 ctrl+单击使用 jquery 的按钮时才有效

  19. 19

    数据绑定仅在 select ng-options 中使用 as 语法时才有效

  20. 20

    wpf datagrid mousebinding leftdoubleclick 命令仅在项目已被选中时才有效

  21. 21

    TWebBrowser - 它仅在显示其 Delphi 父窗体时才有效吗?

  22. 22

    仅在插入断点时才有效的 iOS Drawer UI

  23. 23

    为什么我的 tkinter 窗口仅在全局创建时才有效?

  24. 24

    Nginx 仅在将工作进程用户设置为 root 时才有效

  25. 25

    我的底部导航栏仅在我双击以切换片段时才有效

  26. 26

    用户角色仅在Symfony2中注销后才有效

  27. 27

    Active Directory Powershell 脚本仅在 Excel 中打开源 csv 后才有效

  28. 28

    未捕获的 SyntaxError:await 仅在 async 函数中的 async 函数中有效

  29. 29

    jQuery函数仅在手动将窗口调整为移动窗口大小但不刷新时才有效

热门标签

归档