鍍金池/ 問(wèn)答/HTML/ js變量使用前要先定義類型嗎?

js變量使用前要先定義類型嗎?

題目描述

Your task is to drive your car from 1 to 60 Kilometers per hour by printing a pattern.
A hyphen represents the speed of cars.
one hyphen is counted as 1 kph.

簡(jiǎn)單來(lái)講就是依次輸出1到60個(gè)連字號(hào)。

題目來(lái)源及自己的思路

(題目來(lái)源于此)[https://edabit.com/challenge/...]。

相關(guān)代碼

function Go(num) {
    var result = "";
    for(var i=0; i<num; ++i){
        result+="-";
    }
    return result;
}

你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?

num是從1到60依次測(cè)試的。所以實(shí)際上應(yīng)該看到1到60個(gè)“-”依次輸出。如“-”,“--”,“---”。以上代碼是正確的,但我嘗試著把

var result = "";

改成

var result;

結(jié)果就會(huì)報(bào)錯(cuò)。這是為什么呢?一定要先定義result為字符串嗎?

回答
編輯回答
笑浮塵

var result = "";聲明了是一個(gè)字符串類型,var result; 只聲明沒(méi)有定義類型。+=一般用在number或string類型上

2018年6月15日 12:58
編輯回答
枕頭人

不要誤導(dǎo)別人,js明確表示不需要聲明類型,因?yàn)樗莿?dòng)態(tài)語(yǔ)言,并不需要提前編譯。

2017年11月16日 02:58
編輯回答
互擼娃

你在考慮字符拼接的時(shí)候忘記了result+="-"實(shí)際上是result=result+"-"

當(dāng)result沒(méi)有數(shù)據(jù)的時(shí)候,result與一個(gè)字符相加,result是一個(gè)"undefined",在這次加完之后,result就變成了"undefined-",然后會(huì)繼續(xù)加。后面就都是正常的了。

這個(gè)問(wèn)題出在一個(gè)沒(méi)有賦值的變量參與字符串拼接

2017年4月20日 18:48