一个js里面的代码,语法很特别,求说明代码语法意图

wateryh 2017-01-03 04:01:23

function $(t) {
function a() {
for (var t = [r("zsNDNsNzNKDCzU3zDCz5N6NvNzN3Nvi5N3NzDCzaNKNiNjiz"), r("zsNzN6NDN3DCzNNsNvNii5N6NvNiDC35izNz"), n("zsNzN6NDN3DCzjN3NDiDN3ii"), r("zsNzN6NDN3DCzUNKNvNiDC35izNz"), r("zsNiN3NvN5iKDCzNzD"), n("zsiDNsND"), n("zsiDNsNDNKN5DC3ziKiCN3i5N3izizNKNvNi"), s("zsiDNKNsNaDCzDNaNsN5Nm"), s("zDNsizNsNvNi"), i("zDNsi3NjNsi3i5DC5K55"), n("zDN3NaNaDCzU3z"), i("zDNKizi5iziDN3NsNUDC3NN3iDNsDC35N3iDNKNN"), i("zDN6NzN6NvNKDCzU3z"), e("zDN6N6NmNUNsNvDCz6NaNzDC35iziKNaN3"), r("zDiDNsNiNiNsNzN6N5NKN6"), r("zDiDN6NsNziiNsiK"), r("z5NsNaNKNDiDNK"), s("z5NsNaNKNNN6iDNvNKNsNvDCzNzD"), e("z5Nsi5izN3NaNaNsiD"), i("z5Nsi5i3NsNa"), n("z5N3NvizNsi3iD"), s("z5N3Nvizi3iDiKDCziN6izNjNKN5"), n("z5NjNsNaNmNzi3i5izN3iD"), r("z5N6NaN6NvNvNsDCzU3z"), r("z5N6iCiCN3iDiCNaNsizN3DCziN6izNjNKN5DCzaNKNiNjiz"), r("zzN3N9Ns3Ni3DCzaziz5DC35NsNvi5DCzUN6NvN6"), s("zzN3i5NzN3NUN6NvNs"), r("zzzNzmNsNKDU35zD"), e("zzN6izi3NU"), e("z3NvNiiDNsiNN3iDi5DCzU3z"), n("z3iDNsi5DCzDN6NaNzDCzK3zz5"), e("z3i3iDN6i5izNKNaN3"), n("zNNsNvNi35N6NvNi"), e("zNN6iDizN3"), i("zNiDNsNvNmNaNKNvDCziN6izNjNKN5DCzjN3NsiNiK"), i("zNiDN3NvN5NjDC35N5iDNKiCizDCzU3z"), e("ziNsNDiDNKN6NaNs"), s("ziNKNiNK"), e("ziNKi5NjNs"), i("ziN6i3NziKDCz6NaNzDC35iziKNaN3"), n("zii3NaNKNU"), n("zii3NvNi35N3N6"), s("zjNsN3izizN3Nvi5N5NjiiN3NKNaN3iD"), r("zjNsiDiDNKNvNiizN6Nv"), r("zjNKiDNsNiNKNvN6DC35NsNvi5DCzizD"), s("zKNUiCNsN5iz"), e("zKNvNNN6iDNUNsNaDC3DN6NUNsNv"), r("zmNsN5i5izz6NvN3"), n("zmNKNvN6DCzU3z"), s("zmN6i9i3NmNsDCziN6izNjNKN5DC3CiD5Nzv"), e("zaN6NjNKizDCzii3N9NsiDNsizNK"), r("zaN6NUNs"), r("zai3N5NKNzNsDCzDiDNKNiNjiz"), n("zai3N5NKNzNsDCzNNsij"), r("zUNsNiNvN3izN6"), i("zUNsNaNii3NvDCziN6izNjNKN5"), i("zUNsizi3iDNsDCzU3zDC35N5iDNKiCizDCz5NsiCNKizNsNai5"), e("zUN3NvNaN6"), s("zUNKNvNizaNK33DUz3ijizzD"), i("zUN6N6NazDN6iDNsNv"), r("zU35DC3CzUNKNvN5NjN6"), e("zU35DC3DN3NNN3iDN3NvN5N3DC35NsNvi5DC35N3iDNKNN"), i("zvN3iii5DCziN6izNjNKN5DCzU3z"), n("zvNKNsNiNsiDNsDC35N6NaNKNz"), e("zviKNsNaNs"), s("3CNsNaNsN5N3DC35N5iDNKiCizDCzU3z"), n("3CNsiCiKiDi3i5"), n("3CN3iDiCN3izi3Ns"), e("3CNaNsiKNDNKNaNa"), n("3CzUNKNvNizaNK33"), s("3DNsN5NjNsNvNs"), n("3DN6N5NmiiN3NaNa"), n("35NsiiNsi5NzN3N3"), i("35N5iDNKiCizDCzU3zDCzDN6NaNz"), i("35N3NiN6N3DC3CiDNKNviz"), n("35NjN6iiN5NsiDNzDCziN6izNjNKN5"), i("35NKNUzjN3NK"), e("35NvNsiCDCzK3zz5"), s("3zNaiiNizUN6NvN6"), r("3ziiDCz5N3NvDCzU3zDCz5N6NvNzN3Nvi5N3NzDCz3ijiziDNsDCzDN6NaNz"), e("33NDi3Nvizi3"), s("33NUiCi3i5Nj"), e("33NvNKiNN3iDi5"), n("33izN6iCNKNs"), s("3NNaNsNzNKNUNKiDDC35N5iDNKiCiz"), s("3iNKNzN3DCzaNsizNKNv"), n("vzmmm6v39vjm"), n("v3jUjvvNKNjivzmj9Uv39vjm"), r("v3jUjvvNKNjivzmmm6v39vjm"), r("v3jUjvvNKNjiv39vjmvzmUK5"), e("v3jUjvvNKNjiv3mU9Kvzm9Ks"), e("v3jUjvvNKNjivNKNmCvK9Uj6"), r("v3jUjvvNKNjivN93mivzmUK5"), i("v3jUjvvNKNjiviKC93vij6jC"), n("v3jUjvvNKNjivimmjNvKmmKs"), e("v3jUjvvNKNjivj9sjavN93mi"), r("v3jUjvvNKNjivKK9mNvzmK9N"), r("v39vjmvzmUK5"), s("v3mKmav3KajN"), r("v3mv9vvjmU96vKKmj3vKmmKs"), n("vNKNmCv39vjmvzmUK5"), e("vNKNmKvN9U95v39iK9vzmUK5"), n("vNKNmKvN9U95vjjjKDvzmUK5"), i("vN93mivzmUK5"), n("vKK9mNvzmK9N"), s("vKmmKsvzmUK5"), i("vNKNmCvimmjNvNKjjvvzmUK5"), r("vimmjNvNKjjvvzmUK5"), r("vN9CjivN93mivzmUK5"), i("vzmmm6v39vjm36zizD5D555s5D"), r("vN93mivzmUK536zizD5D555s5D"), i("v3mv9vvjmU96vN9U95vKmmKsvzmUK5"), s("v3jUjvvNKNjivKmmKsvzmUK5"), n("vzmjmUvKmmKsDC3CiDN6"), r("vzmjmUv39vjmDC3CiDN6"), e("vjjmmKvNKvKavzmjmUvzmj9UvKmmKs"), s("vjjmmKvNKvKavzmjmUvimmjNv39vjm")], a = [], _ = 0; _ < t.length; _++) try {
var c = t[_];
o()(c) && a.push(c)
} catch(h) {
r("NNN6NvizDCNzN3izN3N5izDCN3iDiDN6iD")
}
return a.join(e("5m"))
}
}


这里只有一部分代码,想请教一下部分的语法的意思,
特别是,
function $(t)
o()(c) && a.push(c)
两行。另外,为啥没打分号,也没有报错呢?

有大神能逐行解释一下就更好了,语法意图就ok

...全文
214 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2017-01-03
  • 打赏
  • 举报
回复

function $(t) {//声明一个函数名为“$”的函数
    function a() {//在$函数局部环境内声明一个a函数
        for (var t = [...................], a = [], _ = 0; _ < t.length; _++)//循环并创建t、a和_三个变量。
        try {//错误处理
        	//可能发生错误的语句。
            var c = t[_];//以_变量的值为下标取t数组的元素
            o()(c) && a.push(c)//o()会返回一个函数,然后执行这个返回的函数,如果这个函数的返回值为真则执行a.push(c)
        } catch(h) {
            //发生错误后执行的语句
            r("NNN6NvizDCNzN3izN3N5izDCN3iDiDN6iD")
        }
        return a.join(e("5m"))//返回a数组拼接成的字符串
    }
}

ipqtjmqj 2017-01-03
  • 打赏
  • 举报
回复
第二个问题我查了,js中有Automatic Semicolon Insertion o()(c) && a.push(c) 上面这行具体含义是o为一个函数,调用后其返回值也是个函数,所以再一次调用
  • 打赏
  • 举报
回复
javascript断句不需要分号也行,和其他oo语言不一样一定要分号,js可有可无。 o()(c) && a.push(c) 这个不难懂吧,就是执行o()后再执行(c),o()返回的应该是函数。然后判断(o())(c)为true时,a数组压入c这个值
ipqtjmqj 2017-01-03
  • 打赏
  • 举报
回复
function $(t) 美元符号也可以作为标识符的名字 o()(c) && a.push(c) 因为在try{}里面

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧