作用域是JS逆向的基础,怎么区分它是属于那一块的。
1.作用域的解释:作用域分为全局作用域和句柄作用域。{局部用域:变量在函数内声明,变量为局部作用域,全局作用域:全局变量 。网页中所有脚本和函数均可使用就叫做全局作用域。}
2.上代码,先说变量:
var aaa;//声明一个全局变量,在所有函数外面,所有函数都可以调用到。
//这个就是全局作用域,比如我们的window变量。
function xxx(){
var sss;//在这个函数内部声明的变量叫做局部变量,只有
//这个xxx函数可以调用这个sss变量,其他在xxx函数外面声明的
//函数无法调用这个sss变量。这个就是要局部作用域。如果在xxx函数内部声明
//的函数那么sss是可以被调用的。下面我再写一个例子
}
function person(){
var h=0; // 在person内部声明一个属于person的全局变量,person里的的所有函数
//都可以调用这个h这个变量。h就算是再person函数内部的声明全局作用域,
//调用只能在person函数内部,外面无法调用。
function myfucntion(){
var x=5 //x是myfunction函数的局部作用域,只能再myfunction内部调用,外部无法调用,
//就算是person也无法调用。因为它的作用域只在myfunction这个函数内部。
return h+x;
}
return myfucntion()
}
3.变量理解了吧,还有不理解的可以在下方评论哦 。我会一一解答。现在来说函数的作用域。二话不说上代码:
function test(){
return "第一个函数"
}
function test2(){
return "第二个函数"
}
function test3(){
return "第三个函数"
}
//这个三个函数都是全局函数,属于全局作用域。因为这个三个函数我们都可以直接调用,属于全局,
//下面我例举这个函数就叫做局部作用域。
function myfunction (){
function test(){
return "第一个函数"
}
function test2(){
return "第二个函数"
}
function test3(){
return "第三个函数"
}
}
//这种情况我们在外部是无法调用这个三个函数的,在外部只能调用这个myfunction这个全局函数,
//而这个test这三个函数我们需要在myfunction这个函数内部才能调用,因为它们三个函数的作用
//域是在myfunction函数内部的。
函数的作用域还是不难的,重在理解它到底是属于那一块的。在JS逆向当中只要我们会区分的话。也没啥太大的问题了。
4.文章写的不容易。还请大家伙给小弟点个赞哦,小弟在这里感谢了。
有兴趣的可以关注微信公众号,我们可以一起交流