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()完全相同。
相關文章
- window.eval()和eval()是有區別的
- GridView 中 Bind和Eval的區別詳解View
- yield self和instance_eval用法區別
- Python中eval與exec的使用及區別Python
- 【轉】exec xargs的區別 另附eval命令介紹
- 被嫌棄的eval和with
- python內建函式-eval()函式與exec()函式的區別Python函式
- ../和./和/的區別
- 和 的區別
- as 和 with的區別
- ||和??的區別
- /*和/**的區別
- LinkedList和ArrayList的區別、Vector和ArrayList的區別
- http和https的區別/get和post的區別HTTP
- ./ 和sh 的區別
- JQuery this和$(this)的區別jQuery
- jquery $(this) 和this的區別jQuery
- T和?的區別
- ++a和a++的區別
- makefile =和:=的區別
- Mybatis中#{}和${}傳參的區別及#和$的區別小結MyBatis
- 和區別
- MYSQL和SQL的區別MySql
- varchar和char的區別
- &self 和 self 的區別
- var和public的區別
- filter和interceptor的區別Filter
- useEffect 和 useLayoutEffect 的區別
- SDK和API的區別?API
- var 和 let 的區別
- WebApi和MVC的區別WebAPIMVC
- service和systemctl的區別
- GET和POST的區別?
- GET和POST的區別
- button和submit的區別MIT
- GET 和 POST 的區別
- 【Java】equals 和 == 的區別Java
- django和flask的區別DjangoFlask