可以在这个小片段中看到该行为(将其作为全局脚本执行):
var name = {};
name.FirstName = 'Tom';
alert(name.FirstName);
Run Code Online (Sandbox Code Playgroud)
undefinedChrome中的警报产生但可以在IE和Firefox中使用.当我这样做时,我也得到一个奇怪的价值
alert(name);
Run Code Online (Sandbox Code Playgroud) 我知道这一定是非常基本的东西,但我不了解范围是如何工作的。我希望closed整个 JavaScript 文件都知道该变量。
我有类似的东西(在 jQuery 中):
\n\nvar closed = 0;\n\n$(function(){\n console.log(closed);\n});\nRun Code Online (Sandbox Code Playgroud)\n\n但closed被记录为false. load我用和函数尝试了很多东西onload,但失败了。
为什么当我返回时,我认为是来自javascript函数的布尔变量,它在调用函数中被检测为字符串,但如果我返回一个布尔文字,则调用函数将其检测为布尔值?
所以,例如:
$( document ).ready(function(){
$('#result').text(typeof validate());
$('#result2').text(typeof validate2());
});
function validate(){
status = true;
status = false;
return status;
}
function validate2(){
return true;
}Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Hello</p>
<div id="result"></div>
<div id="result2"></div>Run Code Online (Sandbox Code Playgroud)