window.eval()和eval()的區別
很多朋友認為window.eval()和eval()是完全相同的,其實並非如此,下面就通過程式碼例項做一下簡單介紹。
下面先來看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼var antzone="螞蟻部落"; var age=2; function func(){ eval("var antzone='分享互助';"); eval("age=3"); console.log(antzone); console.log(age); } func(); console.log(antzone); console.log(age);
從程式碼輸出值來看,eval()的執行環境是由它本身所在的位置決定的,所建立變數的作用域和普通方式建立變數的規則是一樣的。
再來看一段程式碼:
[JavaScript] 純文字檢視 複製程式碼var antzone="螞蟻部落"; var age=2; function func(){ window.eval("var antzone='分享互助';"); window.eval("age=3"); console.log(antzone); console.log(age); } func(); console.log(antzone); console.log(age);
上面的程式碼是採用window.eval()方法,這個時候,執行結果就和上面的程式碼有所差異了,總結如下:
(1).window.eval()方法在IE8以上或者其他標準瀏覽器中,window.eval()所建立的執行環境是全域性的。
(2).在IE8和IE8以下瀏覽器中,window.eval()和eval()完全相同。
相關文章
- Python中eval與exec的使用及區別Python
- python內建函式-eval()函式與exec()函式的區別Python函式
- ../和./和/的區別
- LinkedList和ArrayList的區別、Vector和ArrayList的區別
- http和https的區別/get和post的區別HTTP
- ||和??的區別
- /*和/**的區別
- jquery $(this) 和this的區別jQuery
- JQuery this和$(this)的區別jQuery
- T和?的區別
- makefile =和:=的區別
- ++a和a++的區別
- ./ 和sh 的區別
- 和區別
- springmvc和springboot的區別SpringMVCSpring Boot
- SDK和API的區別?API
- ArrayList和LinkedList的區別?
- button和submit的區別MIT
- MTV和MVC的區別MVC
- hadoop和spark的區別HadoopSpark
- rpop 和 brpop的區別
- WebApi和MVC的區別WebAPIMVC
- GET和POST的區別?
- ArrayList和LinkedList的區別
- WBS和TASK的區別?
- JavaScript中for in 和for of的區別JavaScript
- innerText 和 textContent 的區別?
- var 和 let 的區別
- @JsonProperty和@JsonAlias的區別JSON
- POST 和 GET 的區別
- sass和less的區別
- MySQL和Oracle的區別MySqlOracle
- sizeThatFits 和 sizeToFit的區別
- GitHub和GitLab的區別GithubGitlab
- Js中for in 和for of的區別JS
- isKindOfClass和isMemberOfClass的區別
- innerText和textContent的區別
- cookie和session的區別CookieSession
- require 和 import 的區別?UIImport