日期:2014-05-16  浏览次数:20361 次

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