gpt4 book ai didi

javascript - Javascript 中的对齐问题

转载 作者:行者123 更新时间:2023-11-28 17:42:29 25 4
gpt4 key购买 nike

我正在尝试一些简单的 javascript,如果你问我,我的发现是相当惊人的,我想知道为什么 javascript 会这样。因此,我有一个简单的内联函数,它定义了两个内部函数:任务 1 和任务 2,并具有一个具有两个属性的返回对象:job1 和 job2,其中 job1 指向任务 1,作业 2 指向任务 2。我收到如下错误:

Uncaught SyntaxError: Unexpected token :

令人惊奇的是,如果我在 return 语句之后立即移动大括号(请参阅代码中的注释),脚本实际上会正常工作并按预期提示警报“1”。为什么我在返回后或下一行立即放置花括号会很重要?

<!DOCTYPE html>
<html>

<head>
<script data-require="angular.js@*" data-semver="4.0.0" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta.17/angular2.min.js"></script>

</head>

<body>
<h1>Hello!</h1>
</body>

</html>
<script type="text/javascript">

var x = function()
{
var task1 = function() { alert("1"); }
var task2 = function() { alert("2"); }

return
{ ///////////// move this on the previous line right after return
job1: task1,
job2: task2
};
}

x().job1();

</script>

我一直认为在 javascript 中是这样的:

var x = function() {
//content
}

相当于:

var x = function() 
{
//content
}

但显然不是我首先提到的情况。为什么?

最佳答案

Why does it matter if I put the curly brace immediately after return or on the next line?

因为分号在 javascript 中是可选的。解析器做了一些“魔术”来确定语句的结尾在哪里,并看到 return<newline>相当于 return;

关于javascript - Javascript 中的对齐问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47620488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com