1.eval() 函數作用:可以接受一個字符串str作為參數,並把這個參數作為腳本代碼來
執行。
2.參數情況:(1)如果參數是一個表達式,eval() 函數將執行表達式;
(2) 如果參數是Javascript語句,eval()將執行 Javascript 語句
3.注意:(如果執行結果是一個值就返回,不是就返回undefined,如果參數不是一
個字符串,則直接返回該參數)
4.語法:eval(string),
5.案例:
eval("var a=1");//聲明一個變量a並賦值1。
eval("2+3");//執行加運算,並返回運算值。
eval("mytest()");//執行mytest()函數。
eval("{b:2}");//聲明一個對象。如果想返回此對象,則需要在對象外面再嵌套一層小括如下:eval("({b:2})");
注意:使用eval來解析JSON格式字符串的時候,會將{}解析為代碼塊,而不是對象的字面量
//1.在JSON格式的字符串前面拼接上 "var o ="
//2.把JSON格式的字符串使用()括起來,就不會將{}解析為代碼塊,而是表達式
6.函數作用域:eval()函數並不會創建一個新的作用域,並且它的作用域就是它所在的
作用域,有時候需要將eval()函數的作用域設置為全局,當然可以將eval()在全局作用
域中使用,這個時候可以用window.eval()的方式實現。
7.Function和eval有什么區別?
共同點:都可以講字符串轉化為js代碼
不同點:Function創建出來的函數,並不會直接調用,只有當手動去調用創建出來的函數的時候才,eval把字符串
轉化為代碼后,直接就執行了。