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的点击事件,因为事件还是绑定在前一个对象上面的,因此导致这种现象。

浙公网安备 33010602011771号