js中test做全局變量
今天想測試一下dom中的空格來著,卻發現了一個很隱秘的東西。ie中不能讓test作為全局變量。最初的測試代碼如下:
js代碼:
<script type="text/javascript">
window.onload = function(){
test = document.getElementById('test');
test.style.backgroundColor = "red";
}
</script> html代碼:
<body>
<h1>DOM簡介</h1>
<p id="test">dom的廣泛使用是有道理的,以下是一些原因:</p>
</body> 然后在firefox中測試,發現文本“dom的廣泛使用是有道理的,以下是一些原因:”出現了紅色。即顯示了樣式。然而在ie7和ie6下測試則都沒有效果。
于是,將test設為局部變量,即將“test=document.getElementById('test')”改為“var test=getElementById('test')”。就能在ie下看到紅色文本的效果了。然后我又在將原來的test換成其它變量名,并且還是全局變量。還是能看到效果。翻了翻犀牛書,發現test不是javascript的關鍵字或保留字,這就肯定了test不能作為ie全局變量名這一結論。所以以后在寫js的時候還要好好注意變量的命名。這里就先把js關鍵字和保留字列出來。o(∩_∩)o...
以下內容來自《javascript權威指南第五版》
Reserved JavaScript keywords
| break | if | do | switch | typeof |
| case | else | in | this | var |
| catch | false | instanceof | tHRow | void |
| continue | finally | new | true | while |
| default | for | null | try | with |
| delete | function | return |
Words reserved for ECMA extensions
| abstract | double | goto | native | static |
| boolean | enum | implements | package | super |
| byte | export | import | private | synchronized |
| char | extends | int | protected | throws |
| class | final | interface | public | TRansient |
| const | float | long | short | volatile |
| debugger |
Other identifiers to avoid
| arguments | encodeURL | Infinite | Object | String |
| Array | Error | isFinite | praseFloat | syntaxError |
| Boolean | escape | isNaN | parseInt | typeError |
| Date | eval | Math | RangError | undefined |
| decodeURL | EvalError | NaN | ReferenceError | unescape |
| decodeURLComponent | Function | Number | RegExp | URLError |
window.onload 
浙公網安備 33010602011771號