認識javascript中的eval函式

2021-08-29 15:24:31 字數 537 閱讀 8264

eval函式接收乙個引數s,如果s不是字串,則直接返回s。否則執行s語句。如果s語句執行結果是乙個值,則返回

此值,否則返回undefined。

需要特別注意的是物件宣告語法「{}」並不能返回乙個值,需要用括號括起來才會返回值,簡單示例如下:

var code1='"a" + 2'; //表示式

var code2=''; //語句

alert(eval(code1)); //->'a2'

alert(eval(code2)); //->undefined

alert(eval('(' + code2 + ')')); //->[object object]

可以看到,對於物件宣告語句來說,僅僅是執行,並不能返回值。為了返回常用的「{}」這樣的物件宣告語句,必

須用括號括住,以將其轉換為表示式,才能返回其值。這也是使用json來進行ajax開發的基本原理之一。

在例子中可以清楚的看到,

第二個alert語句輸出的是undefined,

而第三個加了括號後輸出的是語句表示的物件。

JavaScript中的this詳解

this屬於js的底層知識,了解this之後,能夠實現一些基本的功能,但是感覺最重要的是,this是物件導向必不可少的組成部分,如果希望能夠逐漸的掌握物件導向,this必然是不可少的。檢視this指向的一句話法則 永遠指向其所在函式的所有者如果沒有所有者時,指向window。理解this的要點 關鍵...

JavaScript中的setInterval用法

setinterval function,interval arg1,arg2,argn setinterval object,methodname,interval arg1,arg2,argn 第一種格式是標準動作面板中setinterval函式的預設語法,第二種格式是在專家模式動作中使用的方法...

JavaScript中的陣列

陣列 引數 返回值原陣列是否改變 1 向陣列尾部新增push 引數可以是乙個或多個 返回值是新增後陣列的長度 原陣列改變 2 刪除陣列的最後一項pop 沒有引數 返回值是刪除的那個數 原陣列改變 3 向陣列的頭部新增unshift 引數可以是乙個或多個 返回值是新增後陣列的長度 原陣列改變 4 刪除...