1. 程式人生 > >js中eval()函式的使用

js中eval()函式的使用

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把字串

轉化為程式碼後,直接就執行了。