使用 javascript 时,如果您在函数的括号中添加一些内容,例如:
<button onclick="myFunction('Hello')">Click Here!</button>
在 JS 中:
function myFunction(i);
var i = "Hello"
它是在运行时立即定义,还是其他?
使用 javascript 时,如果您在函数的括号中添加一些内容,例如:
<button onclick="myFunction('Hello')">Click Here!</button>
在 JS 中:
function myFunction(i);
var i = "Hello"
它是在运行时立即定义,还是其他?
它是在运行后立即定义 var i = "Hello" 还是其他?
当调用发生时,该值 被传递给函数,该函数使用被调用的参数"Hello"
接收它。所以在函数代码中,引用给你的值。i
i
"Hello"
在您的示例中,当用户单击按钮时会发生调用,因为该单击会触发onclick
您定义的属性中的代码。
从文档
每个执行上下文都有一个关联的变量环境。在执行上下文中评估的 ECMAScript 代码中声明的变量和函数作为绑定添加到该变量环境的环境记录中。对于功能代码,参数也作为绑定到该环境记录添加。
有关完整文档,请参阅http://ecma-international.org/ecma-262/5.1/#sec-10.5。
所以是的,它等同于绑定var i = "hello";
,因为它们将对应于执行上下文的 VariableEnviroment 中的相同条目。
您可以通过执行以下操作看到这一点:
function hello(i) {
var i ="no hello";
console.log(arguments[0]);
}
hello("hi")
>>"no hello"
使用您的代码:
<button onclick="myFunction('Hello')">Click Here!</button>
function myFunction(i) {
alert(i); // display the i value on this case «Hello»
}
«i» 是您的函数的参数/参数
现在,如果您将 hello 更改为 bye,则 i 值将仅在您的函数上为 «bye»
<button onclick="myFunction('Bye')">Click Here!</button>
function myFunction(i) {
alert(i); // display «Bye»
}
alert(i); // outside the function i is undefined ;)