标签:错误 ati console 活跃 变量赋值 作业 global error fine
GO: global object 即 全局上下文
console.log(a); // 输出 a的函数声明 function a() { var a = 0; var a = function() {} } var a = 1;
暗示全局变量:imply global variable
即变量为声明就赋值属于全局变量,一切全局变量都在window下面,在函数内部的变量,未声明就直接赋值,也是全局变量
function test() { var jj = dd = 1; } test4(); console.log(jj) //Uncaught ReferenceError: jj is not defined console.log(dd) // 1
说明 jj是函数内的局部变量,而dd是全局变量
var a = 1; function a() { console.log(a) }; console.log(a); //1
console.log(a, b); // a输出function a函数,b 是 undefined。a是函数声明,会整体提升,b是函数表达式,只有声明提升 function a() {}; var b = function() {};
预编译:在函数执行之前进行的一个步骤即AO activation object 活跃对象,函数上下文
寻找AO的方法:
function test(a) { console.log(a); // function a() {} var a = 1; console.log(a); // 1 function a() {}; console.log(a); // 1 var b = function() {}; console.log(b); // function() {} function d() {} } test(2);
AO的过程如下:
function test(a, b) { console.log(a); c = 0; var c; a = 5; b = 6; console.log(b); function b() {}; function d() {}; console.log(b); }
test(1)
a = 1; function test() { console.log(a); // undefined a = 2; console.log(a); // 2 var a = 3; console.log(a); // 3 } test(); var a;
a = 1; function test() { console.log(a); // 1 a = 2; console.log(a); // 2 a = 3; console.log(a); // 3 } test(); var a;
function test() { return a; // function a() {} a = 1; function a() {}; var a = 2; } console.log(test())
function test() { a = 1; function a() {}; var a = 2; return a; // 2 } console.log(test());
a = 1; function test(e) { function e() {}; arguments[0] = 2; console.log(e); // 2 if(a) { var b = 3; } var c; a = 4; var a; console.log(b); // undefined f = 5; // 全局变量 console.log(c); // undefined console.log(a); // 4 } var a; test(1);
标签:错误 ati console 活跃 变量赋值 作业 global error fine
原文地址:https://www.cnblogs.com/ycherry/p/11638041.html