问题一:
js 运算符优先级 . 优先级要高于 new,但是请问为什么下面代码可以运行?还是我理解的优先级有问题。谢谢。var d = new Date().getDate();-------------------------
问题二:
<button onclick="func()">add</button>
<script>
var div = document.createElement( 'div'),
all = div.getElementsByTagName( 'i');
alert( all.length);
function func(){
div.innerHTML += '<i>hello world</i>';
alert( all.length);
}
</script>在点击 add 之后 alert 会递增?请问怎么理解,all 一直和 div 的 i 元素联系着?
js 运算符优先级 . 优先级要高于 new,但是请问为什么下面代码可以运行?还是我理解的优先级有问题。谢谢。var d = new Date().getDate();-------------------------
问题二:
<button onclick="func()">add</button>
<script>
var div = document.createElement( 'div'),
all = div.getElementsByTagName( 'i');
alert( all.length);
function func(){
div.innerHTML += '<i>hello world</i>';
alert( all.length);
}
</script>在点击 add 之后 alert 会递增?请问怎么理解,all 一直和 div 的 i 元素联系着?
执行之后给 div.innerHTML 赋的值阿?怎么改变 div.innerHTML 还能在 all 中体现出来?
所以会重新计算
只不过,很多时候,即便没有现成的理论指导,对于现实也必须自己去尽量理解.哪怕暂时是错误的理解.因为学习总有不同阶段.也因为在一生当中,不可能总是有人可以询问.也因为如果没有较多的独立学习能力,那永远不会真正大幅提高.第二个问题,说明你头脑已经晕转向了.
div.innerHTML += '<i>hello world</i>';
<i>递增有什么问题,如果不递增,才有问题.你在这里就是让<I>递增了嘛.所以,好好冷静和轻松一下吧.夜风渐凉,没事出去走走,或者早上起来呼吸点新鲜空气(我一直很向往,但这坏作息习惯是只有向往了).
然后你可以想一想,在现实当中,采用:
new (Data().getDate());
这种写法来实现“调用函数返回一个对象,然后将此对象的某个属性作为构造函数构造一个新的对象”这种功能的可能性有多大呢?2。具体原因应该可以从W3C DOM规范中找到。
你可以理解为getElementsByTagName()方法返回的是一个符合条件的集合,此集合是随着DOM的变化实时更新的。
Scope Chains
这个概念
建议你看看
High.Performance.JavaScript
这本书