簡體   English   中英

具有true和false值的javascript變量?

[英]javascript variable with true AND false value?

我有一個全局字典,在我的網絡應用程序中存儲變量,並注意到一些非常特殊的東西。 當我嘗試更改布爾(true / false)變量時,它似乎會這樣做,但實際上並沒有這樣做。

我用這個簡單的jsfiddle重新創建了這個問題。 使用Chrome,啟動DevTools,然后單擊“Push Me”按鈕。 在控制台中,您會看到app['active']顯示{active:true} ,但如果您通過單擊左側的三角形展開字典,則會顯示active:false 咦?

在此輸入圖像描述

我有一種感覺這是一些核心的javascript(jQuery?)概念我很想念,但是有任何幫助:

  1. 如何確保變量完全更新,並且
  2. 為什么會這樣

...將不勝感激。

在記錄變量之前,其原始值為true。 這就是日志顯示為true的原因,但是當您展開它時,控制台會顯示更新的值。

嘗試將日志放在底部,它將使用更新后的值false進行記錄。

編輯:由於您更新了小提琴,html元素將打印為true,因為您在將值更改為false之前已將文本分配給它。

您的代碼按預期工作,控制台日志顯示它在記錄時設置為true,但由於您在之后立即將其設置為false,因此擴展只顯示更新的值

沒有一種標准的console.[method]應該表現出來。 在Chrome中, console.log是一種異步。 在您的情況下,如果在單擊按鈕之前展開顯示的值,並在單擊按鈕后,顯示的值將僅為{ active: true }

Chrome Dev Tools僅在您請求時才會在控制台中顯示擴展值。 這意味着,在展開對象時,該值可能已更改。

這就是為什么console.log不被認為是一種可靠的調試方式。

console.log可能在Web瀏覽器(Firefox,Safari,Chrome,...)之間采取不同的行為

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM