2017-01-02 73 views
-1

問題加載這個簡單的Java腳本代碼爲什麼我的javascript代碼不能用document.write()產生任何輸出?

<script type="text/javascript"> 
var customer={ 
    name:"Suresh" 
    speak:function(){ 
     return "my name is" +this.name; 
    } 
    address:{ 
     street:"188 sector-5 MVP colony", 
     city:"Visakhapatnam", 
     state: "AP" 
    } 
}; 
document.write(customer.speak()+"<br/>"); 
document.write(customer.name+"lives at"+ customer.address.street+",<br/>"); 
</script> 
+2

java和javascript與羅斯福和希特勒不同。 – progyammer

+0

'java!= javascript' – GurV

+2

對於其中一個,你的對象字面值缺少逗號,並且你不應該使用document.write – Li357

回答

1

首先使用逗號你缺少對象逗號,對象的屬性應該被分開的。也正如@AndrewLi所示,不要使用document.write()。以下是工作代碼的演示。 Refer爲使用document.write的缺點()

var customer={ 
 
    name:"Suresh", 
 
    speak:function(){ 
 
     return "my name is " + this.name; 
 
    }, 
 
    address:{ 
 
     street:"188 sector-5 MVP colony", 
 
     city:"Visakhapatnam", 
 
     state: "AP" 
 
    } 
 
}; 
 
console.log(customer.speak()); 
 
console.log(customer.name+"lives at"+ customer.address.street);

+0

這種情況存在「錯字」的原因,與「答案」相比,它還具有可以更容易刪除問題的優點。 – 2017-01-02 07:23:30

4

歡迎堆棧溢出。社區通常很樂意幫助解決這樣的問題,但實際上你自己學習如何解決這些問題更好。畢竟,每當你有一些錯誤時,你幾乎不可能發佈到SO。

在這種情況下,追蹤此問題的最佳方法是什麼?這與查明烤麪包機不工作的原因相似。首先,檢查確認它已插入。然後,嘗試使用不同的插座。或者,嘗試將其他設備插入相同的插座以查看它是否有效。等等。這是「故障隔離」的基本思想。

你可能會認爲你有一個document.write的問題(順便說一句,正如其他人所提到的,應該避免使用console.log)。爲了測試這個,寫一個單獨的小程序,它不會僅僅是一個document.write("Hi, Sasi");。它工作嗎?然後你知道document.write正在工作,並且你正在正確使用它。

所以現在回到越野車方案。首先要簡單地使用所有可用的工具來幫助您找到任何明顯的錯誤。您應該使用編輯器或IDE,它可以爲您提供語法高亮顯示,並且可能會指示語法錯誤 - 例如紅色下劃線。如果你不使用編輯器或IDE,那麼放棄你正在做的所有事情,找到一個好的,花時間學習並設置它。

另一個有用的工具叫做「linter」,它檢查你的JS代碼是否有常見的錯誤和潛在的問題。瞭解什麼是棉絨,以及如何使用它,並選擇一個,如「eslint」。要使用linter,您可能必須將您的JS放入單獨的JS文件中,並使用標記(如<script src="path/to/my/test.js">)將其帶入HTML。無論如何,你應該這樣做。現在做。

接下來,我們將在Chrome瀏覽器中提供極其有用的開發者控制檯。如果你不知道這是什麼,或者從未使用過它,那麼再次刪除你正在做的其他事情並詳細研究它的文檔。它有許多方便的功能,但在這種情況下相關的是它會在代碼中顯示語法(和運行時錯誤)。例如,當我剪切和粘貼代碼到控制檯,它會立即給我的錯誤

Uncaught SyntaxError: Unexpected identifier

向右走,我知道,我之前也需要擔心的一些問題,我邏輯,或與document.write,我的程序中有一個語法錯誤。此外,它會指出錯誤發生的確切位置:以speak:開頭的行。爲什麼speak是「意外標識符」?如果你現在無法自己解決問題,那麼你可以採用「分而治之」的方法。例如,嘗試刪除整個speak方法。但我仍然收到錯誤,這次是address成員。嗯。也許有以上這裏這是造成這個問題的任何後續。嘗試刪除上面的name:"Suresh"行,然後重試 - 您會看到speak上的錯誤消失。所以你現在知道這個問題在這兩行之間或之間。最終,你應該能夠推斷出你省略這key: value對之間需要一個對象文本逗號,這是希望你知道,通過閱讀文件,如this one,這很有幫助說

你根本的東西表示鍵值列表用逗號分隔

希望以上內容對於追蹤至少大部分代碼中的簡單錯誤是一個很好的起點,在你遇到一個更復雜的問題之前,你真的需要發佈到SO上。

相關問題