setTimeout()函式第一個引數帶引號報錯原因介紹

admin發表於2017-03-29

這句話其實有點問題的,那就是並不是所有的情況下,第一個引數帶有引號會報錯。

下面就介紹一下setTimeout()函式第一個引數帶有引號和不帶有引號的區別,希望能夠給需要的朋友帶來幫助。

先看一段程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
var index=0;
function done(){
  function func(){
    index=index+1;
    console.log(index);
  }
  setTimeout("func()",1000);
}
done();

上面的程式碼會報錯,報錯截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201703/29/142739locnnz77n8w7w0q8.jpg\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

說明帶有引號的時候,無法找到指定的函式,程式碼修改如下:

[JavaScript] 純文字檢視 複製程式碼
var index=0;
function done(){
  function func(){
    index=index+1;
    console.log(index);
  }
  setTimeout(func,1000);
}
done();

上面的程式碼能夠正確執行。

此函式和setInterval()是一個道理,具體原因可以參閱setInterval()第一個引數帶引號和不帶引號的區別一章節。

相關文章