[url=http://xkr.us/articles/javascript/unary-add/]参考文章[/url]
[b]encodeURI和encodeURIComponent[/b]
window.encodeURI函数用来编码一个URL,但是不会对以下字符进行编码:“:”, “/”, “;”, “?”.
window.encodeURIComponent则会对上述字符进行编码。
我们通过一个例子来说明: 'index.jsp?page='+encodeURI('/page/home.jsp'); // "index.jsp?page=/page/home.jsp" 'index.jsp?page='+encodeURIComponent('/page/home.jsp'); // "index.jsp?page=%2Fpage%2Fhome.jsp"
因此,在对URL进行编码时我们经常会选择 encodeURIComponent。
[b]table.innerHTML在IE下是只读属性[/b]
我们经常通过节点的[i]innerHTML[/i]属性来填充节点,比如: <div id="container1"> </div>
document.getElementById('container1').innerHTML = "Hello World!";
但是在IE下设置[i]table.innerHTML[/i]将会导致错误: <table id="table1"> </table>
// works well in Firefox, but fail to work in IE document.getElementById('table1').innerHTML = "<tr><td>Hello</td><td>World!</td></tr>";
实际上,table, thead, tr, select等元素的innerHTML属性在IE下都是只读的。
那么如果动态的创建一个table呢,下面提供了一种可行的方法: <div id="table1"> </div>
document.getElementById('table1').innerHTML = "<table><tr><td>Hello</td><td>World!</td></tr></table>";
[b]0.1+0.2 != 0.3[/b]
JavaScript将小数作为浮点数对待,所以可能会产生一些四舍五入的错误,比如: 0.1 + 0.2; // 0.30000000000000004
你可以通过toFixed方法指定四舍五入的小数位数: (0.1 + 0.2).toFixed(); // "0" (0.1 + 0.2).toFixed(1); // "0.3"