JS---遇见的疑惑

JS解析顺序
 
一、编译阶段
  找声明:var
二、执行
  执行JS代码
三、案例

  var a=1,b=2;

  a=b+(b=a);

  alert(a);  ------>a=3,b=1;

  首先抛出我的疑惑:计算从右向左执行,则a=b+(b=a)--->a=b+(b=a=1)那么--->a=b+b=1+1?还是a=b+b=2+1?

四、案例解析

  编译过程:var a=undefined,b=undefned;

  执行过程:a=b+(b=a)--->从右向左执行,由于右边括号优先级高;a=b+(b=a=1)--->a=b+b=b+1=2+1;因为使用变量就是使用值,a=b‘+(b=a)中b'没有赋值行为则直接使用值,而后一个b存在赋值行为b=a,则后一个b就是一个变量---->b=a=1;

  执行完成后:a=3,b=1;

 

X += Y 和 X = Y + X 区别 

 一、list.innerHTML  =  "<li><img src="+picSrc+" alt=''><p>"+ipt.value+"</p></li>"+list.innerHTML;

         在前面拼接 :等式右边的list.innerHTML剪切标签list的所有内容,然后再在这个内容前面,拼接"<li><img src="+picSrc+" alt=' '><p>"+ipt.value+"</p></li>"

  二、list.innerHTML  +=  "<li><img src="+picSrc+" alt=''><p>"+ipt.value+"</p></li>";      

           在后面追加:list.innerHTML  +=  "<li><img src="+picSrc+" alt=' '><p>"+ipt.value+"</p></li>"等价于list.innerHTML  =  list.innerHTML+ "<li><img src="+picSrc+" alt= ' '><p>"+ipt.value+"</p></li>"则:等式右边的list.innerHTML剪切标签list的所有内容,然后再在这个内容后面,追加"<li><img src="+picSrc+" alt=''><p>"+ipt.value+"</p></li>"

 

  

关于引用地址的改变

  

 

    解析:obox.innerHTML += content.innerText;-----》obox.innerHTML  =  obox.innerHTML+content.innerText;将原来obox.innerHTML复制一份,则是一个新的引用地址,新的引用地址没有btn的点击事件,因为事件还是绑定在前一个对象上面的,因此导致这种现象。

 

 
posted @ 2018-03-08 14:41  成都·bobo  阅读(109)  评论(0)    收藏  举报