vlambda博客
学习文章列表

代码分析 | 没学过JavaScript如何分析简单JavaScript代码


没学过JavaScript,如何分析其中的代码?

前些日子有个好友找我帮忙,让我分析一下以下代码

   var loc = location.href;
   var n1 = loc.length;
   var n2 = loc.indexOf('=');
   var txt = decodeURI(loc.substr(n2+1,n1-n2));
   var box = document.getElementById('box');
   box.innerHTML = txt;

不过我还没学JavaScript ,那么怎么来解读这个代码呢?

我的想法是,借助百度,一句话一句话的“读”

以下附上我的分析过程:

(关键就是弄懂里面一些命令参数的意思与作用)


   var loc = location.href;
   var n1 = loc.length;
   var n2 = loc.indexOf('=');
   var txt = decodeURI(loc.substr(n2+1,n1-n2));
   var box = document.getElementById('box');
   box.innerHTML = txt;
   var loc = location.href;

location.href; 返回完整的URL(当前页):

将返回的值给变量 loc

n1 = loc.length;将URL长度记为n1

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

n2 = loc.indexOf('='); 等号首次出现的位置,记为n2

loc.substr();

在字符串中抽取从 start 下标开始的指定数目的字符。

起始下标(start)为n2+1(等号后面的一个字符)

子串中的字符数(length)为n1-n2(总长度减去等号出现的位置)


decodeURI();    对一个编码后的URL进行解码


解码后的内容存放在 txt中

 var box = document.getElementById('box');
 box.innerHTML = txt;

读取内容:txt的内容

参考资料:

https://www.cnblogs.com/zjm1999/p/10222129.html