document.write('hello,world');
同時我們的helloworld.html還需要告訴我們的瀏覽器js代碼在哪里
3.2.1 從數(shù)學出發(fā)
讓我們回到第一章講述的小明的問題,從實際問題下手編程,更容易學會編程。小學時代的數(shù)學題最喜歡這樣子了——某商店里的糖一個5塊錢,小明買了3個糖,小明一共花了多少錢。在編程方面,也許我們還算是小學生。最直接的方法就是直接計算3x5=?
document.write(3*5);
document.write實際也我們可以理解為輸出,也就是往頁面里寫入3*5的結(jié)果,在有雙引號的情況下會輸出字符串。我們便會在瀏覽器上看到15,這便是一個好的開始,也是一個糟糕的開始。
3.3 設計和編程
對于實際問題,如果我們只是止于所要得到的結(jié)果,很多年之后,我們就成為了code monkey。對這個問題進行再一次設計,所謂的設計有些時候會把簡單的問題復雜化,有些時候會使以后的擴展更加簡單。這一天因為這家商店的糖價格太高了,于是店長將價格降為了4塊錢。
document.write(3*4);
于是我們又得到了我們的結(jié)果,但是下次我們看到這些代碼的時候沒有分清楚哪個是糖的數(shù)量,哪個是價格,于是我們重新設計了程序
tang=4;
num=3;
document.write(tang*num);
這才能叫得上是程序設計,或許你注意到了“;”這個符號的存在,我想說的是這是另外一個標準,我們不得不去遵守,也不得不去fuck。
3.3.1 函數(shù)
記得剛開始學三角函數(shù)的時候,我們會寫
sin 30=0.5
而我們的函數(shù)也是類似于此,換句話說,因為很多搞計算機的先驅(qū)都學好了數(shù)學,都把數(shù)學世界的規(guī)律帶到了計算機世界,所以我們的函數(shù)也是類似于此,讓我們做一個簡單的開始。
function hello(){
return document.write("hello,world");
}
hello();
當我第一次看到函數(shù)的時候,有些小激動終于出現(xiàn)了。我們寫了一個叫hello的函數(shù),它返回了往頁面中寫入hello,world的方法,然后我們調(diào)用了hello這個函數(shù),于是頁面上有了hello,world。
function sin(degree){
return document.write(Math.sin(degree));
}
sin(30);
在這里degree就稱之為變量。 于是輸出了-0.9880316240928602,而不是0.5,因為這里用的是弧度制,而不是角度制。
sin(30)
的輸出結(jié)果有點類似于sin 30。寫括號的目的在于,括號是為了方便解析,這個在不同的語言中可能是不一樣的,比如在ruby中我們可以直接用類似于數(shù)學中的表達:
2.0.0-p353 :004 > Math.sin 30
=> -0.9880316240928618
2.0.0-p353 :005 >
我們可以在函數(shù)中傳入多個變量,于是我們再回到小明的問題,就會這樣去編寫代碼。
function calc(tang,num){
result=tang*num;
document.write(result);
}
calc(3,4);
但是從某種程度上來說,我們的calc做了計算的事又做了輸出的事,總的來說設計上有些不好。
3.3.2 重新設計
我們將輸出的工作移到函數(shù)的外面,
function calc(tang,num){
return tang*num;
}
document.write(calc(3,4));
接著我們用一種更有意思的方法來寫這個問題的解決方案
function calc(tang,num){
return tang*num;
}
function printResult(tang,num){
document.write(calc(tang,num));
}
printResult(3, 4)
看上去更專業(yè)了一點點,如果我們只需要計算的時候我們只需要調(diào)用calc,如果我們需要輸出的時候我們就調(diào)用printResult的方法。
3.3.3 object和函數(shù)
我們還沒有說清楚之前我們遇到過的document.write以及Math.sin的語法為什么看上去很奇怪,所以讓我們看看他們到底是什么,修改app.js為以下內(nèi)容
document.write(typeof document);
document.write(typeof Math);
typeof document會返回document的數(shù)據(jù)類型,就會發(fā)現(xiàn)輸出的結(jié)果是
object object
所以我們需要去弄清楚什么是object。對象的定義是
無序?qū)傩缘募?,其屬性可以包含基本值、對象或者函?shù)。
創(chuàng)建一個object,然后觀察這便是我們接下來要做的