js容易出错总结
<a href="#" id="xx">test1</a>
<a href="#">test2</a>
<script>
function init(){
var message = 'click -';
var x = document.getElementsByTagName('a');
for(var i=0; i<x.length;i++){
x[i].onclick = function(){
alert(i);
x[i].innerHTML = message;
}
}
}
init();
</script>
不对因为alert的值总是2,onclick的时候x[i].innerHTML中的i已经是2.解决方法是用this代替x[i]。
var iWantThisProperty = 'money';
var myHappiness = thingsToHave[iWantThisProperty ];
相当于
var myHappiness = thingsToHave.money;
<a href="#" id="xx">test1</a>
<a href="#">test2</a>
<script>
function init(){
var message = 'innerHTML';
var x = document.getElementsById('xx');
var msg = '方括号和.的差别' ;
x.message = msg;
}
init();
</script>
不对因为给x增加了属性message,应该为x[message]实现。
Value Class Type
-------------------------------------
"foo" String string
new String("foo") String object
1.2 Number number
new Number(1.2) Number object
true Boolean boolean
new Boolean(true) Boolean object
new Date() Date object
new Error() Error object
[1,2,3] Array object
new Array(1, 2, 3) Array object
new Function("") Function function
/abc/g RegExp object (function in Nitro/V8)
new RegExp("meow") RegExp object (function in Nitro/V8)
{} Object object
new Object() Object object