一、淘宝ua分析与学习之匿名函数

时间:2021-07-21 19:12:26

写在前:

我属于比较懒段的非码农,在分析淘宝ua之前没正经学习过js,对js的理解也仅仅在与简单的运算表达式。由于最近项目上需要用到前端js,遂,开始慢慢关注js方面的文章、书籍。但是我太懒,都是三天打鱼俩天晒网的,所以咯。学习还是要从兴趣下手,从朋友圈问里一圈,js哪家强?ua还得着淘宝。。。。
ok,那就学习淘宝的ua吧。
在学习之前我已经把ua走了一遍,现在呢按照当初的思路好好整理一下,再跟大家分享,学习。
工具:谷歌内核浏览器
样本:[淘宝71.js](https://af.alicdn.com/js/cj/71.js%20%E6%BA%90%E7%A0%81%E5%9C%B0%E5%9D%80) 链接
js是动态进行加载的,具体过程我就不分析了,直接开讲我所学到的点。

2. 正式开始

!function(r, a, v, n) {
!function(t, o, e, u) {
.......}
}(a[556], a[557], navigator[r[603]])
}(["6", "0", "10", "from", "Code", "Char", "21", "46", Boolean, "odeAt", "At", "t", "762", "7", "le", "0000", "Tok", "ng", "yn", "remo", "dom", "3", "2", "uab", "86", "UGqEPMQYwgW2Jh6ismDVaHC83KoXlSn=").......

代码没粘贴完,凑合看吧。这个地方它使用的是匿名函数,其中r,a,v,n 4个参数为后面的数组,a=[“6”, “0”, “10”, “from”, “Code”, “Char”, “21”, “46”, Boolean, “odeAt”,……..
匿名函数我们见的多的一般有function(){},这个实体的方法是没有参数的,那如果我们需要带入参数该怎么办呢?一般来讲,我们会这样做:
var x=function(a,b){};x(1,2);
那尼玛还叫什么匿名函数,都有实体的函数名了,我们要学习可是匿名函数。好吧,我百度后给大家分享下。
(function(a,b){}(1,2));
是不是跟jquery框架的第一句很像,对不?介个就是匿名函数,它的意思是把参数带入并且执行该函数。
除此之外的匿名函数执行方法还有这种。!function(a,b){}(1,2);+function(a,b){};-function(a,b){};发现规律没,function前面都是运算符号,是不是我们看个例子
if(!a()){},
这个里面的a前面加个运算符号,是在告诉浏览器,我要对a进行运算,然后得出数据再进行if判断 ,那既然运算符可以让a进行运算,那么加减乘除这类的运算符是不是都可以呢,我已经试过,剩下的你们自己试试吧,哈哈。

3.最在这次后面

这次分享的内容非常之简单,非常之基础,因为淘宝ua里面有太多的方法都是匿名方法函数。偷个懒,下次再分享如何寻找与淘宝ua有关的方法,方便一步定位分析。