2015-01-26 34 views
1

當我今天早上回來工作時,我可以在重新啓動服務器後重新加載並查看奇怪的行爲。我無法重新創建它。所以這個問題是「解決的」,隨意刪除它,我不確定是否允許我這樣做。JavaScript每次都會有不同的評估

我嘗試在resize事件中返回 windowdocument高度。根據他們的價值觀,我嘗試做使用if/else語句下面的(很基本的,但它似乎沒有工作,所以我記錄的數據):

裏面我登錄"TRUE [number one] >= [number two]"if聲明else聲明我登錄"FALSE [number one] >= [number two]"。這是在窗口大小調整事件中觸發的。然後我水平調整窗口大小,所以高度值不會改變。具有兩個相同的數字我假定它始終記錄所述TRUE一部分,但輸出的是:

[...] 
TRUE 548 >= 548 
FALSE 548 >= 548 
TRUE 548 >= 548 
FALSE 548 >= 548 
TRUE 548 >= 548 
FALSE 548 >= 548 
TRUE 548 >= 548 
FALSE 548 >= 548 
[...] 

類型的值始終是「數字」,它始終是一個整數,沒有浮動。我也在IE9和FF35中「測試過」。

有人可以解釋發生了什麼?我怎樣才能避免這種行爲?

謝謝!

編輯:我的原始問題已編輯。沒關係。爲了提高我的英語水平(我仍然在學習這門語言),但現在的問題與第一個答案中的問題不同。我沒有問如何獲得元素的高度(所以「我嘗試返回......」不是我的意圖),我的問題是關於具有兩個給定的相等值的if語句的行爲。我只是試圖解釋我是如何到達那裏的。 - 消除拼寫錯誤和將文本解釋爲其他含義是有區別的。

+11

您可以包含運行此檢查的代碼嗎?我懷疑實施過程中會有一些細節可以闡明這個問題。 – ssube 2015-01-26 20:49:51

+0

我在辦公室編寫了代碼,現在我在家裏,無法看到它。我明天將複製並粘貼它。它就像a = $(window).height(),b = $(document).height(),然後:if(a> = b)記錄TRUE否則記錄FALSE。這一切都非常簡單,基本,並帶有花括號和分號。我認爲這並不重要,因爲輸出正如我上面所寫的,主要問題是:爲什麼(548> = 548)是錯誤的? :) – StackBerlin 2015-01-26 21:01:27

回答

0

沒有doctype標籤Chrome,Firefox和Safari報告兩次調用的值相同。

<!DOCTYPE HTML> 

添加一個嚴格的doctype導致所標榜的價值觀工作。

這在幾個瀏覽器中很可能是相同的。