var a='xx';
function c()
{
alert(a); //奇怪的地方这里打印undefined
var a=0;
alert(a);
}
c(); //打印undefined 0
alert(a);//打印xxvar scope = "global";
var f1 = function(){
alert(scope); //打印 global 奇怪的地方这可以打印global
alert(window.scope); //打印 global
}
f1();
alert(scope);//打印global其他的问题 我在代码注释上面标识的问题
function Start() {
var jsonStr="";
jQuery.ajax({
type: "post",
url: "products.aspx/zhuanhuan",
contentType: "application/json; charset=utf-8",
dataType: "json",
dataFilter: function (data) {
jsonStr = data;
alert(jsonStr); //打印出返回值
},
});
alert(jsonStr);//打印出空
search_content_array =jsonStr; //这里在引用的时候还是空
load_html_start(1);
}而且还是先打印的下面的alert
function c()
{
alert(a); //奇怪的地方这里打印undefined
var a=0;
alert(a);
}javascript在解析函数的时候,var定义会被先执行,上面的代码相当于function c()
{
var a;
alert(a); //奇怪的地方这里打印undefined
a=0;
alert(a);
}
发现在函数C里面定义了a,那么就不会到全局里面找,alert(a); 自然就是未定义的。
<script>
function a()
{
var c=function()
{
var b='a';
this.b='c';//
}
var c=new c();
this.c=c;
}
var a=new a();
alert(a.c.b);
</script>ls自己去了解吧
var a='xx';
function c()
{
alert(a); //奇怪的地方这里打印undefined(因为本函数中从新定义了a,并且是在下面)
var a=0;
alert(a);
}
c();var scope = "global";
var f1 = function(){
alert(scope); //打印 global 奇怪的地方这可以打印global(本函数中没有重新定义scope)
alert(window.scope); //打印 global
}
f1(); </script>
<script>
function a()
{
var c=function()
{
return 'c';
}
return c();
}
alert(a());
</script>