1.java的eval()方法(或稱之爲運算符)能夠將字符串解析成能夠運行的javaScript代碼,例如java
eval()只有一個參數。若是傳入的參數不是一個字符串,那麼它會直接返回這個參數。若是傳入的參數是一個字符串,那麼它會把字符串當成js代碼來進行編譯,若是編譯失敗他會拋出一個函數
語法錯誤異常,若是編譯成功,則返回最後執行的結果,若是編譯的代碼沒有返回值,那麼返回undefined.spa
關於eval最重要的一點是:它查找變量的值和定義新變量和函數的操做和局部做用域中的代碼徹底同樣,例如3d
若是調用eval("a=555"),那麼會改變局部變量a的值blog
若是調用eval("var v=999");那麼他會聲明一個新的局部變量ip
2.eval()使用別名調用作用域
關於這個問題,首先看下面這個例子字符串
咱們發現咱們的運行結果是undefined,爲何呢,由於javaScript規定,不管在什麼位置,使用別名來引用eval,那麼它的做用域都將是全局,例子編譯