們從學校里了解到過很多運算符,比如說加號 +、乘號 *、減號 - 等。
在本章中,我們將從簡單的運算符開始,然后著重介紹 JavaScript 特有的方面,這些是在學校中學習的數學所沒有涵蓋的。
在正式開始前,我們先簡單瀏覽一下常用術語。
支持以下數學運算:
前四個都很簡單,而 % 和 ** 則需要說一說。
取余運算符是 %,盡管它看起來很像百分數,但實際并無關聯。
a % b 的結果是 a 整除 b 的 余數)。
例如:
alert( 5 % 2 ); // 1,5 除以 2 的余數
alert( 8 % 3 ); // 2,8 除以 3 的余數
求冪運算 a ** b 將 a 提升至 a 的 b 次冪。
在數學中我們將其表示為 ab。
例如:
alert( 2 ** 2 ); // 22=4
alert( 2 ** 3 ); // 23=8
alert( 2 ** 4 ); // 2?=16
就像在數學計算中一樣,冪運算也適用于非整數。
例如,平方根是指數為 ? 的冪運算:
alert( 4 ** (1/2) ); // 2(1/2 次方與平方根相同)
alert( 8 ** (1/3) ); // 2(1/3 次方與立方根相同)
我們來看一些學校算術未涉及的 JavaScript 運算符的特性。
通常,加號 + 用于求和。
但是如果加號 + 被應用于字符串,它將合并(連接)各個字符串:
let s="my" + "string";
alert(s); // mystring
注意:只要任意一個運算元是字符串,那么另一個運算元也將被轉化為字符串。
舉個例子:
alert( '1' + 2 ); // "12"
alert( 2 + '1' ); // "21"
你看,第一個運算元和第二個運算元,哪個是字符串并不重要。
下面是一個更復雜的例子:
alert(2 + 2 + '1' ); // "41",不是 "221"
在這里,運算符是按順序工作。第一個 + 將兩個數字相加,所以返回 4,然后下一個 + 將字符串 1 加入其中,所以就是 4 + '1'='41'。
alert('1' + 2 + 2); // "122",不是 "14"
這里,第一個操作數是一個字符串,所以編譯器將其他兩個操作數也視為了字符串。2 被與 '1' 連接到了一起,也就是像 '1' + 2="12" 然后 "12" + 2="122" 這樣。
二元 + 是唯一一個以這種方式支持字符串的運算符。其他算術運算符只對數字起作用,并且總是將其運算元轉換為數字。
下面是減法和除法運算的示例:
alert( 6 - '2' ); // 4,將 '2' 轉換為數字
alert( '6' / '2' ); // 3,將兩個運算元都轉換為數字
加號 + 有兩種形式。一種是上面我們剛剛討論的二元運算符,還有一種是一元運算符。
一元運算符加號,或者說,加號 + 應用于單個值,對數字沒有任何作用。但是如果運算元不是數字,加號 + 則會將其轉化為數字。
例如:
// 對數字無效
let x=1;
alert( +x ); // 1
let y=-2;
alert( +y ); // -2
// 轉化非數字
alert( +true ); // 1
alert( +"" ); // 0
它的效果和 Number(...) 相同,但是更加簡短。
我們經常會有將字符串轉化為數字的需求。比如,如果我們正在從 HTML 表單中取值,通常得到的都是字符串。如果我們想對它們求和,該怎么辦?
二元運算符加號會把它們合并成字符串:
let apples="2";
let oranges="3";
alert( apples + oranges ); // "23",二元運算符加號合并字符串
如果我們想把它們當做數字對待,我們需要轉化它們,然后再求和:
let apples="2";
let oranges="3";
// 在二元運算符加號起作用之前,所有的值都被轉化為了數字
alert( +apples + +oranges ); // 5
// 更長的寫法
// alert( Number(apples) + Number(oranges) ); // 5
從一個數學家的視角來看,大量的加號可能很奇怪。但是從一個程序員的視角,沒什么好奇怪的:一元運算符加號首先起作用,它們將字符串轉為數字,然后二元運算符加號對它們進行求和。
為什么一元運算符先于二元運算符作用于運算元?接下去我們將討論到,這是由于它們擁有 更高的優先級。
如果一個表達式擁有超過一個運算符,執行的順序則由 優先級 決定。換句話說,所有的運算符中都隱含著優先級順序。
從小學開始,我們就知道在表達式 1 + 2 * 2 中,乘法先于加法計算。這就是一個優先級問題。乘法比加法擁有 更高的優先級。
圓括號擁有最高優先級,所以如果我們對現有的運算順序不滿意,我們可以使用圓括號來修改運算順序,就像這樣:(1 + 2) * 2。
在 JavaScript 中有眾多運算符。每個運算符都有對應的優先級數字。數字越大,越先執行。如果優先級相同,則按照由左至右的順序執行。
這是一個摘抄自 Mozilla 的 優先級表(你沒有必要把這全記住,但要記住一元運算符優先級高于二元運算符):
優先級 | 名稱 | 符號 |
… | … | … |
15 | 一元加號 | + |
15 | 一元負號 | - |
14 | 求冪 | ** |
13 | 乘號 | * |
13 | 除號 | / |
12 | 加號 | + |
12 | 減號 | - |
… | … | … |
2 | 賦值符 | = |
… | … | … |
我們可以看到,“一元加號運算符”的優先級是 15,高于“二元加號運算符”的優先級 12。這也是為什么表達式 "+apples + +oranges" 中的一元加號先生效,然后才是二元加法。
我們知道賦值符號=也是一個運算符。從優先級表中可以看到它的優先級非常低,只有 2。
這也是為什么,當我們賦值時,比如 x=2 * 2 + 1,所有的計算先執行,然后=才執行,將計算結果存儲到 x。
let x=2 * 2 + 1;
alert( x ); // 5
=是一個運算符,而不是一個有著“魔法”作用的語言結構。
在 JavaScript 中,所有運算符都會返回一個值。這對于 + 和 - 來說是顯而易見的,但對于=來說也是如此。
語句 x=value 將值 value 寫入 x 然后返回 x。
下面是一個在復雜語句中使用賦值的例子:
let a=1;
let b=2;
let c=3 - (a=b + 1);
alert( a ); // 3
alert( c ); // 0
上面這個例子,(a=b + 1) 的結果是賦給 a 的值(也就是 3)。然后該值被用于進一步的運算。
有趣的代碼,不是嗎?我們應該了解它的工作原理,因為有時我們會在 JavaScript 庫中看到它。
不過,請不要寫這樣的代碼。這樣的技巧絕對不會使代碼變得更清晰或可讀。
另一個有趣的特性是鏈式賦值:
let a, b, c;
a=b=c=2 + 2;
alert( a ); // 4
alert( b ); // 4
alert( c ); // 4
鏈式賦值從右到左進行計算。首先,對最右邊的表達式 2 + 2 求值,然后將其賦給左邊的變量:c、b 和 a。最后,所有的變量共享一個值。
同樣,出于可讀性,最好將這種代碼分成幾行:
c=2 + 2;
b=c;
a=c;
這樣可讀性更強,尤其是在快速瀏覽代碼的時候。
我們經常需要對一個變量做運算,并將新的結果存儲在同一個變量中。
例如:
let n=2;
n=n + 5;
n=n * 2;
可以使用運算符 +=和 *=來縮寫這種表示。
let n=2;
n +=5; // 現在 n=7(等同于 n=n + 5)
n *=2; // 現在 n=14(等同于 n=n * 2)
alert( n ); // 14
所有算術和位運算符都有簡短的“修改并賦值”運算符:/=和 -=等。
這類運算符的優先級與普通賦值運算符的優先級相同,所以它們在大多數其他運算之后執行:
let n=2;
n *=3 + 5;
alert( n ); // 16 (右邊部分先被計算,等同于 n *=8)
對一個數進行加一、減一是最常見的數學運算符之一。
所以,對此有一些專門的運算符:
重要:
自增/自減只能應用于變量。試一下,將其應用于數值(比如 5++)則會報錯。
運算符 ++ 和 -- 可以置于變量前,也可以置于變量后。
兩者都做同一件事:將變量 counter 與 1 相加。
那么它們有區別嗎?有,但只有當我們使用 ++/-- 的返回值時才能看到區別。
詳細點說。我們知道,所有的運算符都有返回值。自增/自減也不例外。前置形式返回一個新的值,但后置返回原來的值(做加法/減法之前的值)。
為了直觀看到區別,看下面的例子:
let counter=1;
let a=++counter; // (*)
alert(a); // 2
(*) 所在的行是前置形式 ++counter,對 counter 做自增運算,返回的是新的值 2。因此 alert 顯示的是 2。
下面讓我們看看后置形式:
let counter=1;
let a=counter++; // (*) 將 ++counter 改為 counter++
alert(a); // 1
(*) 所在的行是后置形式 counter++,它同樣對 counter 做加法,但是返回的是 舊值(做加法之前的值)。因此 alert 顯示的是 1。
總結:
自增/自減和其它運算符的對比
++/-- 運算符同樣可以在表達式內部使用。它們的優先級比絕大部分的算數運算符要高。
舉個例子:
let counter=1;
alert( 2 * ++counter ); // 4
與下方例子對比:
let counter=1;
alert( 2 * counter++ ); // 2,因為 counter++ 返回的是“舊值”
盡管從技術層面上來說可行,但是這樣的寫法會降低代碼的可閱讀性。在一行上做多個操作 —— 這樣并不好。
當閱讀代碼時,快速的視覺“縱向”掃描會很容易漏掉 counter++,這樣的自增操作并不明顯。
我們建議用“一行一個行為”的模式:
let counter=1;
alert( 2 * counter );
counter++;
位運算符把運算元當做 32 位整數,并在它們的二進制表現形式上操作。
這些運算符不是 JavaScript 特有的。大部分的編程語言都支持這些運算符。
下面是位運算符:
這些運算符很少被使用,一般是我們需要在最低級別(位)上操作數字時才使用。我們不會很快用到這些運算符,因為在 Web 開發中很少使用它們,但在某些特殊領域中,例如密碼學,它們很有用。當你需要了解它們的時候,可以閱讀 MDN 上的 位操作符 章節。
逗號運算符 , 是最少見最不常使用的運算符之一。有時候它會被用來寫更簡短的代碼,因此為了能夠理解代碼,我們需要了解它。
逗號運算符能讓我們處理多個語句,使用 , 將它們分開。每個語句都運行了,但是只有最后的語句的結果會被返回。
舉個例子:
let a=(1 + 2, 3 + 4);
alert( a ); // 7(3 + 4 的結果)
這里,第一個語句 1 + 2 運行了,但是它的結果被丟棄了。隨后計算 3 + 4,并且該計算結果被返回。
逗號運算符的優先級非常低
請注意逗號運算符的優先級非常低,比=還要低,因此上面你的例子中圓括號非常重要。
如果沒有圓括號:a=1 + 2, 3 + 4 會先執行 +,將數值相加得到 a=3, 7,然后賦值運算符=執行 a=3,然后逗號之后的數值 7 不會再執行,它被忽略掉了。相當于 (a=1 + 2), 3 + 4。
為什么我們需要這樣一個運算符,它只返回最后一個值呢?
有時候,人們會使用它把幾個行為放在一行上來進行復雜的運算。
舉個例子:
// 一行上有三個運算符
for (a=1, b=3, c=a * b; a < 10; a++) {
...
}
這樣的技巧在許多 JavaScript 框架中都有使用,這也是為什么我們提到它。但是通常它并不能提升代碼的可讀性,使用它之前,我們要想清楚。
重要程度: 5
以下代碼中變量 a、b、c、d 的最終值分別是多少?
let a=1, b=1;
let c=++a; // ?
let d=b++; // ?
解決方案
重要程度: 3
下面這段代碼運行完成后,代碼中的 a 和 x 的值是多少?
let a=2;
let x=1 + (a *=2);
解決方案
重要程度: 5
下面這些表達式的結果是什么?
"" + 1 + 0
"" - 1 + 0
true + false
6 / "3"
"2" * "3"
4 + 5 + "px"
"$" + 4 + 5
"4" - 2
"4px" - 2
" -9 " + 5
" -9 " - 5
null + 1
undefined + 1
" \t \n" - 2
好好思考一下,把它們寫下來然后和答案比較一下。
解決方案
重要程度: 5
這里有一段代碼,要求用戶輸入兩個數字并顯示它們的總和。
它的運行結果不正確。下面例子中的輸出是 12(對于默認的 prompt 的值)。
為什么會這樣?修正它。結果應該是 3。
let a=prompt("First number?", 1);
let b=prompt("Second number?", 2);
alert(a + b); // 12
解決方案
原因是 prompt 以字符串的形式返回用戶的輸入。
所以變量的值分別為 "1" 和 "2"。
let a="1"; // prompt("First number?", 1);
let b="2"; // prompt("Second number?", 2);
alert(a + b); // 12
我們應該做的是,在 + 之前將字符串轉換為數字。例如,使用 Number() 或在 prompt 前加 +。
例如,就在 prompt 之前加 +:
let a=+prompt("First number?", 1);
let b=+prompt("Second number?", 2);
alert(a + b); // 3
或在 alert 中:
let a=prompt("First number?", 1);
let b=prompt("Second number?", 2);
alert(+a + +b); // 3
在最新的代碼中,同時使用一元和二元的 +。看起來很有趣,不是嗎?
1.Youngzine
http://www.youngzine.org/
這本兒童雜志充滿了有趣的各種知識,故事、科學、社會、藝術、文化和世界新聞等等。
2. FunBrain
http://www.funbrain.com/
FunBrain有100多種互動游戲,在過程中培養孩子數學、閱讀和識字等能力。另外,孩子們可以閱讀各種流行的書籍和漫畫,包括小屁孩日記等書。
3. TeachersPayTeachers
http://www.teacherspayteachers.com/
這網站居然也是免費的!里面包括多種活動、手工等資源!
4. Abcteach.com
http://www.abcteach.com/
免費網站提供大量的圖書,包括相關利用資源參考。
5. FueltheBrain
http://www.fuelthebrain.com/
孩子可以從FueltheBrain的游戲和互動活動中練習數學,科學和語言藝術技巧!
6. Free Rice
http://freerice.com/
這個網站可以讓孩子復習英語詞匯和語法。每答對,網站將捐出一粒大米。收集大米的同時,幫助孩子們對抗知識上的饑餓。
7. Mr. Nussbaum
http://mrnussbaum.com/
努斯鮑姆先生是一個擁有大量的互動游戲和活動的網站,包含數學、語言藝術、歷史、地理、科學等等資源。
8. SmartyGames
http://www.smartygames.com/index.php
免費游戲網站,學習如何使用錢、計時、計數和閱讀。同時,你會發現迷宮、記憶游戲、謎題、數獨和更多游戲!
9. Federal Resources for Educational Excellence
http://free.ed.gov/subjects.cfm?subject_id=41
來自美國教育部的免費教學資源。在這里可以找到高質量的材料,語言藝術、科學、數學、歷史和更多!
10. KidsClick !
http://www.kidsclick.org/
KidsClick !是一個web搜索網站,成為自己的資源搜索管理員!
11. Turtle Diary
http://www.turtlediary.com/
超過1000種的教育活動、游戲、動畫課程,可打印工作表、互動故事書等等。
12. Librarians’ Internet Database
http://www.ipl.org/
網站幫你找到你和你的孩子可以安心使用的資源。
13. YouTube
http://www.youtube.com/
數以百萬計的YouTube視頻,一定會有讓你感興趣的東西。一步一步的教程,新聞剪報,社論,短紀錄片和更多。
14. TeacherTube
http://www.teachertube.com/
TeacherTube,聽起來像是教師版的youtube。網站的設計是有點過時的(這讓人想起過去版本的YouTube),但還是有許多教育視頻可供選擇。
15. e-Learning for Kids
http://www.e-learningforkids.org/index_main.html
您可以通過教育游戲級別或主題搜索來幫助孩子在家學習,資源包括數學,科學和語言藝術。
16. Appolicious
http://www.appolicious.com/categories/23-education
Appolicious是成千上萬的教育應用程序的清單描述和評論。這是一個很不錯的地方,如果你正在尋找一些新的東西,可以去看看。
17. IMDb
http://www.imdb.com/
使用IMDb,互聯網電影數據庫,可以查詢任何電影的內容,還可以檢查評級,確保它適合你,并閱讀他人的觀影評論。
18. Pinterest
http://www.pinterest.com/
無窮無盡的資源你可以在那里找到。來自世界各地的人們創造了這個地方,充滿著偉大的東西。如果你想看看我發現什么Pinterest,跟我來。
19. Learnist
http://learni.st/
這個社交網絡針對那些想要學習不同的東西的人。用戶創建和分享知識的集合?!敖逃敝黝}有很多行業趨勢和共享資源。
20. Wonderopolis
http://wonderopolis.org/
這個網站是去每日熱身的好地方,因為它有很多有趣的問題像“早上為什么草是濕的呢?”、“最高的燈塔在哪里?”、“天空有多重?”和更多!
21. Seussville
http://www.seussville.com/
蘇斯博士,相信每個人都喜歡…這個網站充滿了互動游戲、活動,了解蘇斯博士的故事從這里開始。
22. Sesame Street
http://www.sesamestreet.org/
芝麻街有各種各樣的活動,幫助學生學習基本技能,如計算,造句,認識不同的形狀和對象等。
23. The Color
http://www.thecolor.com/
TheColor擁有數以百計的免費在線著色頁,甚至不需要被打印出來。你的頁面可以保存到你的著色作品并分享。這是一個很好的網站。
24. FunFonix
http://www.funfonix.com/
FunFonix有多種在線語音游戲??啥ㄖ芖orksheet!
25. Phonics Student Online Components
http://www.sadlier-oxford.com/phonics/student.cfm
有很多PreK-6 grade-appropriate在線游戲和活動。
26. Alphabet Zoo
http://www.sadlier-oxford.com/phonics/grade_k_1/zoo_a/zoo1x.htm
一個有趣的互動游戲,適合較小的小學生學習如何匹配大小寫字母。
27. Starfall
http://www.starfall.com/
這個網站是一個免費的資源網站,讓學生練習字母和發音! 學習phonics的最佳推薦,適合幼兒園,一年級和二年級孩子。
28. Grammar Ninja Game
http://www.kwarp.com/portfolio/grammarninja.html
有趣的游戲可以幫助孩子學習不同的語法。有三個級別的難度可選擇。
29. Scholastic Graphic Organizers for Reading Comprehension
http://www.scholastic.com/teachers/lesson-plan/graphic-organizers-reading-comprehension
學樂網站,幫助孩子的閱讀評估、閱讀理解、課程開發和更多。
30. ReadWriteThink
http://www.readwritethink.org/
ReadWriteThink是一個全面的堂資源的集合網。它包括可搜索的教案、學生互動,活動,還有適合孩子的詩歌、漫畫、報紙等等。
31. Spellathon
http://www.spellathon.net/
練習拼寫與拼寫游戲,適用于互動白板,手機和平板電腦。
32. TVOKids: Spelling Bee Game
http://www.tvokids.com/games/spellingbee
Spelling Bee大賽的網絡游戲版本,孩子聽到這個詞,練習拼寫。
33. Shel Silverstein
http://www.shelsilverstein.com/
如果你愛謝爾西爾弗斯坦和他的詩歌,你需要看看這個。有兩個版本的網站,高帶寬的版本更加炫目,但他們都有相同的基本內容。有有趣的游戲和活動,甚至可以觀看動畫視頻。
34. ManyThings
http://www.manythings.org/
這個網站是一個很好的資源,不管是英語教師還是學生。它有一個廣泛的拼寫游戲和活動的集合,非常適合非英語母語人士。我最喜歡的是拼寫比賽游戲。
35. Forvo
http://zh.forvo.com/
Forvo是世界上最大的發音字典。對ESL學生非常有價值,因為他們可以查找任何單詞,聽發音地道的英語。
36. LitPick
http://www.litpick.com/
這個很棒的網站讓孩子閱讀和在線查找免費電子圖書!適合4 - 12年級的孩子。
37. Storybird
http://storybird.com/
Storybird是可以自制書籍的網站。你可以和朋友們一起做志同道合的事情。
38. The Story Starter
http://thestorystarter.com/
它被列為作家文摘雜志在2012作家101最佳網站名單。
39. Creative Writing Prompts
http://www.creativewritingprompts.com/
當孩子需要靈感,這個網站就是要去的地方。功能超過300多個的詳細的創意寫作提示,以及期刊的想法。您還可以使用寫作提示來熱身。
40. Inklewriter
http://www.inklestudios.com/inklewriter/
Inklewriter是一個免費工具,允許孩子編寫和發布故事。對教師和學生而言,是用電腦進行創意寫作的完美地方。
41. Math Chimp
http://www.mathchimp.com/
數學游戲的免費網站,適合K-8年級孩子。
42. AAA Math: Fractions
http://www.aaamath.com/fra.htm
AAA數學網站的餾分部分是特別有用的,因為它提供了視覺表示和易于理解的說明。您可以從選擇喜歡的堿性餾分主題中進行選擇,增加分數,比較分數,分數轉換,降低分數等。
43. AplusMath: Money Flashcards
http://www.aplusmath.com/cgi-bin/flashcards/money
這里會讓孩子們掌握數錢的技能。
44. Math-Play
Math-Play在線數學游戲,按年級水平,內容和游戲類型分類。你會發現加法,減法,乘法,整數、分數等資源。
45. Math Game Time
數學游戲時間,互動的數學游戲、視頻和worksheets,按年級水平分。孩子將能夠實踐學習計算。
46. Cool Math 4 Kids
http://www.coolmath4kids.com/
這個免費網站看起來可能是在90年早期的設計,但它有很多的內容,減法,次方、乘除法、分數、小數和更多。
47. Calculator.com
http://calculator.com/
一個免費的在線計算器。
48. Calcoolate
http://www.calcoolate.com/
顧名思義,Calcoolate是一個在線計算器。
科學類
49. Extreme Science
http://www.extremescience.com/
最大的海洋食肉動物是什么?世界上最大的蜘蛛有多大?寒冷的南極有什么?了解所有關于動物和世界各地的地方。
50. Earthquakes for Kids
http://earthquake.usgs.gov/learn/kids/
美國地質調查局網站,為孩子提供了關于地震的信息。他們可以了解最新咨詢,通過看動畫或相關游戲認識地震。
51. Water Cycle Diagram – Earthguide
http://earthguide.ucsd.edu/earthguide/diagrams/watercycle/
Earthguide水循環圖提供了一個可視化表示水循環的不同部分,包括降水、徑流、入滲、蒸發、蒸散、凍結和更多。
52. Plate Tectonics Animations
http://www.ucmp.berkeley.edu/geology/tectonics.html
加州大學伯克利分校的板塊構造的動畫演示板的工作流程,以及相關理論,對板塊構造及世界形成提供歷史資料和動畫視頻演示!
53. ARKive
http://www.arkive.org/
里面有令人嘆為觀止的照片和世界瀕危物種影片。 每個條目還包括物種的有關范圍,棲息地和更多的說明和信息。
54. Animal Planet
http://animal.discovery.com/
動物星球的視頻,介紹在地球上的自然資源,野生動物等等。
55. Infrared Zoo Gallery
http://coolcosmos.ipac.caltech.edu/image_galleries/ir_zoo/
可以看到冷血動物和非冷血動物的區別等。還可以學習如何從羽毛,毛皮等分辨不同的動物。非???
56. National Aquarium
http://www.aqua.org/
國家水族館,位于巴爾的摩。官方網站有很多海洋動物的資源。
57. eNature
http://www.enature.com/
使用eNature瀕危和受威脅物種的搜索引擎,輸入您的郵政編碼和了解你附近的高度威脅的動物。還可以參與游戲、測驗和領取免費贈品。
58. Bagheera
http://www.bagheera.com/
在Bagheera了解世界各地瀕危和已經滅絕的物種,提供更多的學習機會。
59. Life of Birds
PBS的網站內,認識地球的適應力最強的生物——鳥類。
60. InnerBody
http://www.innerbody.com/index.html
人體所有系統包括消化系統、免疫系統、肌肉系統、呼吸系統、骨骼系統等等介紹。
61. Planet Size Comparison
http://sciencenetlinks.com/interactives/messenger/psc/PlanetSize.html
這個超贊的網站可以讓你挑選在我們的太陽系中的兩顆行星,并直觀地比較它們。 這是一個多么偉大的創意!
62. Exploratorium
http://www.exploratorium.edu/
舊金山探索博物館的官方網站。它包括各種主題,從天文學知識到介紹人的身體。
63. Rainforest Heroes
http://rainforestheroes.com/
了解熱帶雨林和可以做些什么來幫助保護它。包括創意寫作、拼寫、閱讀、科學,數學,所有關于雨林的主題或保護熱帶雨林的資源。
64. B-EYE
http://andygiger.com/science/beye/beyehome.html
給孩子不同的世界觀!B-EYE可以通過蜜蜂的眼睛,讓孩子看見世界是什么樣子的。你可以放大或縮小真正體驗復合眼在視覺上的效果。
65. Coral Reef PhotoBank
http://www.coral.org/resources/photobank.html
珊瑚礁的圖片庫是一個很好的資源,如果你正有興趣研究海洋生態系統如珊瑚礁。
66. The Dino Directory
http://www.nhm.ac.uk/nature-online/life/dinosaurs-other-extinct-creatures/dino-directory/top-5/top-5.html
查看五大知名恐龍的3D模型,并了解他們的名字和來歷,他們有多大,他們吃什么和何時何地居住在哪里。
67. eSpecies Fact Sheets
http://www.kidsplanet.org/factsheets/map.html
電子實況報道,包括照片,保護狀況,以及超過50種的瀕危物種的信息。
68. Steve Spangler Science Experiments
http://www.stevespanglerscience.com/
簡單有趣的科學實驗搜索目錄。
69. Switcheroo Zoo
http://www.switcheroozoo.com/zoo.htm
讓孩子通過組裝不同的動物部位建立自己的動物。讓他們想象新動物的棲息地,描述它是如何生存,它吃什么以及它與其他動物的關系。
70. The Magic School Bus Games
http://www.scholastic.com/magicschoolbus/games/index.htm
8大以互動科學為基礎的游戲,包括怪物的bug,大境匹配,空間大通,以及更多!也有活動及科學實驗,孩子可以在課堂上或在家里做。
71. Lawrence Hall of Science Kids
http://www.lawrencehallofscience.org/kidsite/
科學游戲大補充,孩子們科學思想交流陣地。
72. MyGarbology
http://www.naturebridge.org/garbology.php
這個網站很好解釋了我們丟棄的物品的解決方案,我們可以如何保護我們的地球。
社會研究/歷史類
73. Blabberize
http://blabberize.com/
Blabberize是一個有趣的Web 2.0工具,允許你上傳照片,并添加音頻文件。
74. Mission U.S.
http://www.mission-us.org/
任務美國是兩個免費的、互動的、身臨其境的美國歷史游戲。一個專注于美國革命,另一個重點是奴隸運動,讓孩子們了解歷史,提高學習歷史的興趣。
75. Online Hieroglyphics Translator
http://www.quizland.com/hiero.mv
輸入一個詞時,看看它看起來像埃及象形文字的翻譯。這是一個很酷的網站。
76. Playing History
http://playinghistory.org/
匯集了所有歷史游戲,建成了簡單的、可搜索的數據庫。
77. iCivics
http://www.icivics.org/
免費課程計劃和學習公民知識的互動游戲。 一些覆蓋在iCivics材料的內容包括公民和參與,分權,政府預算和分支機構。
78. Printable World Maps
http://geography.about.com/library/blank/blxindex.htm
免費打印地圖的國家資料。每個地圖都是一個空白的輪廓。
79. Nat Geo Education: Mapping
http://education.nationalgeographic.com/education/mapping/?ar_a=1&force_AR=True
免費打印地圖,打印巨幅地圖和在線互動地圖。
80. Timerime
http://timerime.com/
MP3音頻剪輯,YouTube視頻剪輯等。
81. X Timeline
http://www.xtimeline.com/index.aspx
很容易創建和分享,包括圖片和視頻。
82. Time Toast
http://www.timetoast.com/
用一個有效的電子郵箱注冊即可,可共享網絡上的任何東西!
83. Dipity
http://www.dipity.com/
Dipity,你可以創建和互動,以及定制自己的分享。
84. Capzles
http://www.capzles.com/
創建自己的分享,圖片、視頻、音頻、Microsoft Word,Microsoft Excel,微軟PowerPoint和PDF文件。
85. 50 States
http://www.50states.com/
詳細信息的50個州,包括縮寫和省會城市。優秀的美國地理教學資料!
86. Have Fun with History
http://www.havefunwithhistory.com/
為教育工作者孩子的歷史資料,有美國所有主要的歷史事件短片。
87. Famous People
http://www.biography.com/people
包括傳記(圖)、視頻、照片以及更多。
88. The Underground Railroad
http://teacher.scholastic.com/activities/bhistory/underground_railroad/index.htm
深入地了解奴隸情況。有音頻、幻燈片、錄像等等。
89. The Seattle Times: Martin Luther King Jr.
http://seattletimes.com/special/mlk/
寶貴資源,馬丁·路德·金故事。這個網站包括傳記,相片等等。
90. Education Place: Outline Maps
http://www.eduplace.com/ss/maps/
可打印地圖的另一個資源,包括歷史上的地圖!
91. Electoral College Calculator
http://www.archives.gov/federal-register/electoral-college/calculator.html
何為選舉?展示如白宮的候選人的競選之路。
92. Plimoth Plantation: Thanksgiving Interactive Activity
http://www.plimoth.org/learn/MRL/interact/thanksgiving-interactive-you-are-historian
這個有趣的網站讓孩子們扮演歷史偵探調查到底第一個感恩節發生了什么。
TML+CSS+JavaScript技術是網絡統計學編程的基礎,網絡統計學離不開網頁前臺編程技術,學習web前端開發基礎技術(網頁設計)需要了解:HTML、CSS、JavaScript三種語言。其中,HTM(HyperText MarkUp Language,HTML)超文本標記語言是網頁內容的載體,網頁內容就是網頁制作者放在頁面上想要讓用戶瀏覽的信息,包含文字、公式、圖片、視頻、表格等。
HTML超文本標記語言有如下特征:
HTML超文本標記語言是通過使用標記來描述文檔結構和表現形式的一種語言,由瀏覽器進行解析后把結果顯示在網頁上。它是網頁構成的基礎,你見到的所有網頁都離不開HTML。
一、HTML文檔結構
1、HTML文檔基本結構
<HTML>
<HEAD>
<TITLE>網頁標題</TITLE>
</HEAD>
<BODY>
<p>第一個HTML文件</p>
</BODY>
</HTML>
HTML文檔以標記【<HTML>】開始,以標記【</HTML>】結束。HTML標簽告訴瀏覽器這兩個標簽之間的內容是HTML文檔。
HTML文檔分為文檔頭【<HEAD>...</HEAD>】和文檔體【<BODY>...</BODY>】兩部分。在文檔頭里,對這個文檔進行了一些必要的定義,文檔體中才是要顯示的各種文檔內容信息。
打開windows的記事本,復制、粘貼HTML文檔基本結構代碼,在指定文件夾中保存為"First.html",如圖:
圖1:保存到指定文件夾的HTML文檔"First.html
鼠標雙擊打開這個HTML文件,顯示結果如圖:
圖2:瀏覽器打開HTML文檔"First.html,段落標簽<p>第一個HTML文件</p>之間的文本顯示在瀏覽器中
2、HTML文檔頭
HTML文檔中文檔頭【<HEAD>...</HEAD>】標簽間的內容不被顯示,但在網頁設計中非常重要。下面為一段HTML文檔頭代碼:
<HEAD>
<TITLE>網頁標題</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" href="http://code.jquery.com/jquery.mobile-1.1.1.min.css"/>
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<style>
<!--
.item-title {padding: 25px 10px; }
#fixed-fullscreen-content {margin-top: 0; }
A.oPageLink {FONT-SIZE:14pt;COLOR:#6666ff; TEXT-DECORATION:none;}
//-->
</style>
<script language="JavaScript">
<!--
function setLSNorm() {
if(window.localStorage){
localStorage.setItem($("#oNorm5").val(),$("#d1").val());
}else{
alert('This browser does NOT support localStorage');
}
alert(localStorage.getItem($("#oNorm5").val()))
}
//-->
</script>
</HEAD>
HTML文檔頭代碼中,
標簽可提供有關頁面的元信息(meta-information),比如針對搜索引擎和更新頻度的描述和關鍵詞。 標簽位于文檔的頭部,不包含任何內容。幾乎任何網頁可以看到類似上面這段代碼。“charset=UTF-8”(有時為“charset=gb2312”)表示網頁使用不同字符集。標簽屬性單元較為復雜,對于初學者來說,記住在網頁中加入這段代碼即可;
CSS外部樣式,外部樣式是通過在html中引用外部css文件來控制網頁樣式,同一個css文件可以被多個網頁引用;
引用外部JavaScript腳本程序文件,一個獨立存在的JS腳本文件可以被多個網頁引用;
CSS內部樣式,內部樣式內部樣式是寫在html文件中,且包含在代碼塊中,而style寫在head里面。內部樣式對所在網頁內所有指定的標簽有效;
CSS還有一種內聯樣式,內聯樣式是直接在html標簽上定義該標簽的css樣式,如:<div style="width:300px; color:#ff0000;">。這里style為塊標簽div的樣式屬性,定義塊標簽div的寬度為300像素、標簽內文字顏色為紅色。更多CSS知識參見“教程”;
在網頁內部運行的JavaScript代碼。更多JS知識參見教程。
3、HTML文檔體
HTML文檔中,文檔體中才是要顯示的各種文檔內容信息。HTML文檔體包含在【<BODY>...</BODY>】標簽之間。文檔體中常用的HTML標簽為:
<b>標簽b之間的文字在網頁中顯示為粗體字</b>
<i>標簽b之間的文字在網頁中顯示為斜體字</i>
<h1>h1 標題1(head1)</h1>
<h2>h2 標題2(head2)</h2>
<h3>h3 標題3(head3)</h3>
<h4>h4 標題4(head4)</h4>
<h5>h5 標題5(head5)</h5>
<h6>h6 標題6(head6)</h6>
<sub>下標(subscript)</sub>
<sup>上標(superscript)</sup>
<a href="#">a 超級鏈接(anchor)</a>
<br/> br 換行(break)
<hr/> hr 橫線(horizontal)
<center>center 居中(center)</center>
<div>div 區塊(division)</div>
<p>p 段落(paragraph)</p>
<pre>pre 按預定格式顯示的文本(Preformatted)</pre>
<img src="#" alt="圖片" />img 圖片(image)
<form action="#" method="post">
<input type="text" name="name" value=""/>文本輸入框(text)
<input type="radio" name="name" value=""/>單選框(radio)
<input type="checkbox" name="name" value=""/>復選框(checkbox)
<input type="file" name="name" value=""/>文件選擇框(file)
<input type="hidden" name="name" value=""/>隱藏域(hidden)
<input type="image" name="name" value=""/>圖片按鈕(image)
<input type="password" name="name" value=""/>密碼輸入框(password)
<input type="reset" name="name" value="reset"/>重置按鈕(reset)
<input type="submit" name="name" value="submit"/>提交按鈕(submit)
<select>
<option value="value">option 選擇項1(option)</option>
<option value="value">option 選擇項2(option)</option>
</select>
<textarea>textarea 多行文本輸入區(textarea)</textarea>
</form>
有序列表
<ol>
<li>li 列表項(list item)</li>
<li>li 列表項(list item)</li>
</ol>
無序列表
<ul>
<li>li 列表項(list item)</li>
<li>li 列表項(list item)</li>
</ul>
table 表格(table)
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>td 表格數據(table data)</td>
<td>td 表格數據(table data)</td>
</tr>
<tr>
<td>td 表格數據(table data)</td>
<td>td 表格數據(table data)</td>
</tr>
</table>
4、HTML文檔體轉義字符
轉義字符串(Escape Sequence)也稱字符實體(Character Entity)。在HTML中,定義轉義字符串的原因有兩個:
轉義字符串分成三部分:
(1)常用HTML轉義字符表
(2)數學和希臘字母標志
二、HTML常用標簽(tag)使用方法及顯示效果
1、超鏈接標簽【a】
【用法】<a href="https://www.toutiao.com/article/7221429823632409147/">統計學面臨的機遇與挑戰 - 網絡統計學</a>
【效果】統計學面臨的機遇與挑戰 - 網絡統計學
2、換行標簽【br】
【用法】在我后面換行<br/> br 換行(break)
【效果】
在我后面換行
br 換行(break)
3、粗體標簽【b】
【用法】<b>b 粗體(bold)</b>
【效果】b 粗體(bold)
4、居中標簽【center】
【用法】<center>center 居中(center)</center>
【效果】
center 居中(center)
5、換行塊標簽【div】
【用法】<div>div 區塊(division),自動換行</div>后續文本
【效果】
div 區塊(division),自動換行
后續文本
6、不換行塊標簽【span】
【用法】<span>span 區塊(division),不換行</span>后續文本
【效果】span 區塊(division),不換行后續文本
7、標題標簽【hi】
【用法】hi 標題
<h1>h1 標題1(head1)</h1>
<h2>h2 標題2(head2)</h2>
<h3>h3 標題3(head3)</h3>
<h4>h4 標題4(head4)</h4>
<h5>h5 標題5(head5)</h5>
<h6>h6 標題6(head6)</h6>
【效果】
8、橫線標簽【hr】
【用法】<hr> hr 橫線(horizontal)
【效果】
————————————————
hr 橫線(horizontal)
9、斜體標簽【i】
【用法】<i>i 斜體(italic)</i>
【效果】i 斜體(italic)
10、圖片標簽【img】
【用法】<img src="http://www.galaxystatistics.com/webTJX/mobile/blog/img/test1.jpg">
【效果】
圖3:【img】圖片標簽顯示src屬性所指網絡圖片
11、有序列表標簽【ol】
【用法】ol 有序列表(order list)
<ol>
<li>li 列表項(list item)</li>
<li>li 列表項(list item)</li>
</ol>
【效果】
12、無序列表標簽【ul】
【用法】ul 無序列表(unordered list)
<ul>
<li>li 列表項(list item)</li>
<li>li 列表項(list item)</li>
</ul>
【效果】
13、段落標簽【p】
【用法】<p>p 段落(paragraph)</p>
【效果】p 段落(paragraph)
14、按預定格式標簽【pre】
【用法】<pre> 按預定格式顯示的文本(Preformatted)</pre>
【效果】按預定格式顯示的文本(Preformatted)
15、下標標簽【sub】
【用法】X<sub>sub 下標(subscript)</sub>
【效果】Xsub 下標(subscript)
16、上標標簽【sup】
【用法】X<sup>sup 上標(superscript)</sup>
【效果】
17、表格標簽【table】
【用法】X<sub>table 表格(table)</sub>
<table border="1" cellpadding="0" cellspacing="0">
<caption>table 表格(table)</caption>
<tr>
<td>td 表格數據(table data)</td>
<td>td 表格數據(table data)</td>
</tr>
<tr>
<td>td 表格數據(table data)</td>
<td>td 表格數據(table data)</td>
</tr>
</table>
【效果】
18、表單標簽
【用法】form 表單(form)
<form action="#" method="post">form 表單(form)<p/>
<input type="text" name="name" value="" />input,type='text' 文本輸入框(text)<p/>
<input type="radio" name="name" value="" />input,type='radio' 單選框(radio)<p/>
<input type="checkbox" name="name" value="" />input,type='checkbox' 復選框(checkbox)<p/>
<input type="file" name="name" value="" />input,type='file' 文件選擇框(file)<p/>
<input type="hidden" name="name" value="" />input,type='hidden' 隱藏域(hidden)<p/>
<input type="password" name="name" value="" />input,type='password' 密碼輸入框(password)<p/>
<input type="reset" name="name" value="reset" />input,type='reset' 重置按鈕(reset)<p/>
<input type="submit" name="name" value="submit" />input,type='submit' 提交按鈕(submit)<p/>
select 選擇列表(select)
<select>
<option value="value1">option 選擇項1(option)</option>
<option value="value2">option 選擇項2(option)</option>
<option value="value3">option 選擇項3(option)</option>
</select><p/>
<textarea>
textarea
多行文本輸入區
</textarea> <p/>
</form>
【效果】
HTML文檔制作主要指〈BODY〉***〈/BODY〉之間HTML標簽的布局設計。本文簡單介紹了常用的HTML標簽,如果想用這些標簽制作出漂亮的統計報告,還需要CSS樣式修飾和JavaScript基本進行動態響應。至于統計圖表、公式等需要JavaScript調用庫函數來實現。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。