>> [音樂播放]
>> 道格·勞埃德：所以現在我們老了 專業人士在網絡編程，對不對？
我們已經介紹了幾個 語言在各個視頻。
現在，讓我們做一個，JavaScript的。
>> 首先是好消息，JavaScript的 是一個現代的編程
語言，就像PHP的 語法是從C派生，
所以這是一個良好的開端。
這是關於老的PHP，以及， 已經存在了大約20年。
有人發明了各地 同時為PHP。
和JavaScript實際上非常 基本用戶體驗
幅材。
實際上，有 三種語言，我
會說那種補 交互的用戶體驗
與網站，HTML， CSS和JavaScript。
所以，現在讓我們討論 關於JavaScript點點。
>> 壞消息，雖然與JavaScript是 它設置了大量的規則本身，
然後它打破它們。
和JavaScript實際上可以 一種具有挑戰性的學習，
因為它不像C和 PHP，這是非常結構化
並有非常嚴格的規則 對於事情如何工作的。
JavaScript有樣 中變得如此靈活
也許事情不會 工作我們希望他們的方式，
也許我們真的不能學 我們的第一個編程語言
作為一個JavaScript。
因此，也許因為它不 為自己設定任何規則，
它並沒有真正 強制良好的編碼習慣。
但是，現在我們已經希望開發 一些良好的編碼習慣，
所以我們可以開始掠奪 成JavaScript一點點。
>> 編寫JavaScript，類似於開放 與點C擴展C文件
或用點PHP擴展的PHP文件， 我們需要做的就是打開一個文件
用點js文件擴展名。
我們不需要有任何特別的 像我們做的分隔符在PHP中。
那種角度 支架問號PHP
我們已經習慣了從的樣子， 我們告訴我們的瀏覽器，我們所擁有的
JavaScript是由包括 在一個HTML標籤，
我們會看到一點點 如何做到這一點在短短的時刻。
>> 其他的東西，它使 JavaScript的不同，
雖然，是它運行客戶端。
綜上所述，使用PHP回顧 我們永遠無法真正看到
這強調了網站的PHP。
如果我們曾經看到的 網頁源代碼，我們只能
看到是HTML 由PHP產生。
但JavaScript的運行客戶端。
您的JavaScript運行在您的計算機上。
這就是為什麼你可以做 東西隨意添加阻滯劑。
對？
廣告阻塞通常是由完成 殺死所有的JavaScript
即在一個特定的網站上運行。
而且因為它必須 運行在您的計算機客戶端，
你可以停止 JavaScript來完全運行。
這也意味著，當你使用 一個網站，包括了JavaScript，
你必須發送JavaScript源 代碼作為你的HTTP響應的一部分
給客戶端時，他們提出要求。
所以你可能不 要使用JavaScript
做真正敏感的事情 像傳遞信息
有關用戶的密碼備份和 第四，因為他們實際上是
將要接收所有的源代碼， 不只是生成的HTML，
如將與發言權PHP的情況。
>> 那麼，如何才能包含JavaScript 在我們的HTML開始嗎？
好了，類似CSS，實際上， 是那種我們在這裡是如何做到這一點。
使用CSS我們的風格標籤。
而那些風格標籤內， 我們可以定義一個CSS樣式表。
同樣使用JavaScript 我們可以打開腳本標記，
另一個HTML標記我們沒 在我們的HTML視頻講，
和JavaScript寫的 這些腳本標記之間。
此外，雖然，如CSS，我們 可能CSS文件外鏈接
拉他們到我們的節目的方式。
使用CSS，我們也可以， 請問，使用JavaScript
我們也可以指定源 script標籤的屬性
在JavaScript鏈接 另外，讓你不
必須在寫 腳本標記之間，我們
可以使用鏈接它 該腳本標籤。
而且，就像使用CSS那裡的情況下， 我們建議它可能是
你最感興趣寫 在的情況下一個單獨的文件你的CSS
你需要去改變它， 同樣做我們推薦
你寫你的 的JavaScript在不同的文件
並使用腳本標記源 屬性，以配合您的JavaScript
到HTML，你的網頁。
>> 所以JavaScript變量，我們將 開始談論的語法在這裡。
而我們將通過 這種快速，
因為我們已經在PHP中做到了這一點，所以 這應該都非常熟悉。
因此，在JavaScript中的變量 非常類似於PHP變量。
有沒有類型說明符，和 當你引入一個變量，
你用var關鍵字前綴它。
在PHP中，我們會做一些 這樣，美元符號的X.
這就是我們指示 一個變量，但是沒有，我們
不提的類型 變量的在所有。
我們會說，像 美元符號x等於44 PHP。
如果我們在做 在JavaScript中同樣的事情，
我們會說無功x等於44。
所以，VAR是那種我們的方式 的引入的變量。
這或許更直觀一點 不僅僅是美元符號的變量。
>> 同樣，由於沒有 數據類型，我們可以這樣做
與任何數據類型，字符串， 別的都將是無功。
條件語句，我們所有的 從C和PHP老朋友
仍然可用，所以我們有如果， 否則，如果，否則，開關和問題
標誌結腸。
交換機剩餘靈活，因為它 在PHP，但所有這些你
熟悉現在。
而同樣與環路 的，而老歌，
做一段時間，並仍然提供給我們。
因此，我們已經知道了很多的 基本面基本的JavaScript類
僅僅憑藉具有相當多的 現在關於C和PHP知識。
>> 那麼在JavaScript的功能呢？
那麼，類似PHP每個功能 引入的功能關鍵字。
你說的功能，然後 開始定義功能。
什麼是有一點不同 關於JavaScript的，
雖然是有能力 什麼叫做匿名函數。
所以，你可以定義函數 不具有一個名字。
這是我們 還真沒見過。
我們將真正使用的概念 匿名函數的
在這個待會兒 視頻，因為它會
使背景下多一點意義 當我們看到它在特定情況下
我已經在這裡製作。
但是，我們只是看看 在什麼是簡單的JavaScript
函數可能看起來像。
>> 所以，我已經先行一步，並 打開了我的CS50的IDE
我已經運行的Apache 開始我的服務器上運行。
我有這個文件 打開名為Home.html中。
我會在一點點放大這裡。
基本上，你可以看到 Home.html中只是一堆按鈕。
而我在上面聲稱在這裡 這是JavaScript部分
材料。
因此，有一堆按鈕在這裡， 但做這些按鈕實際上呢？
>> 好了，我們會去到我的IED， 而我的Home.html在這裡打開。
在一開始， 這裡的地方我鏈接
在我所有的JavaScript源文件。
對？
所以我有anonymous.js，clock.js， 我使用源屬性
腳本標記的文件鏈接。
所以，我沒有寫任何 JavaScript的直接進入這個文件，
但我已經將所有的 JavaScript的我分開寫。
如果我們這裡，這個向下滾動 應該都是看起來有點熟悉
隨著新的語法一點點。
我們在這裡頭標記 函數，然後一個按鈕。
我有一個輸入，這是一個類型的按鈕， 顯然，當我點擊它，
我要調用一些 功能警報的日期。
這是那種我們如何可以混合起來 JavaScript和HTML一點點。
實際上，他們發揮得很好 在一起，所以很明顯，當
我點擊這個按鈕，我要去 要調用一些功能警報的日期。
而同樣是我所定義的行為 對於所有的其它按鈕，
是home.html的頁面上， 我們將回頭率
這個視頻的過程中。
但是，讓我們回去了 這裡就來看看
在clock.js，這是 JavaScript文件，我
寫有這首功能 我們要看一看。
正如你所看到的，我開始我的JavaScript 用關鍵字功能功能，
我已經給這一個 的名字，這就是所謂的警報的日期。
裡面還有，我顯然是創建一個 所謂的當前日期新的局部變量。
而我要去分配 一個等於一個新的日期。
而且，我們可以進入很多 具體以什麼日期是，
真正的JavaScript是這樣 大不大，說我們不可能
面面俱到的一個視頻。
但我只想說，這是怎麼回事 回到我的數據項
封裝當前日期和時間。
我存儲在我是一個變量 顯然要提醒當前日期。
>> 那麼，什麼警報 當前日期是什麼樣子？
讓我們來看看文件本身 備份過在瀏覽器窗口。
如此反复，這是按鈕，我 已經綁，這個命名功能。
我點擊它，並 看看它的所作所為，它提醒。
它突然出現了這樣的框，告訴 我的當前時間為，顯然
這是11月4日 10時43分43秒在上午。
如果我再次點擊它，現在 這是一個幾秒鐘後，對不對？
所以，這就是這個函數。
當我點擊這個按鈕，它 彈出一個警告信息給我。
所以真的沒有 太多的功能
這是從PHP不同， 新的語法，只是一點點
隨使用JavaScript。
>> 在JavaScript中數組是 很簡單。
要聲明一個數組，可以使用 方括號語法
我們很熟悉的PHP。
而類似PHP，我們 也可以混合數據類型。
所以這個數組，無論是 這些陣列的將
是完全合法的JavaScript。
一說是所有的整數，而另一個 混合起來不同的數據類型。
>> 什麼是非常不同的東西 在JavaScript中，有關係嗎？
這是一個對象的概念。
因此，也許你聽說過 面向對象編程。
我們不會做很多它的CS50， 但我們會做一點點
這裡在JavaScript的上下文。
現在的JavaScript有能力 表現為一個面向對象的程序設計
語言，但它本身不是 完全面向對象的
編程語言。
而這又涉及 回到為什麼我說，這
是非常具有挑戰性的學習 JavaScript作為你的第一個程序
語言，因為它不 真正適合某個特定的模式。
>> C對另一方面是一個 函數式編程語言。
如果我們想，功能 那種大老闆的人吧？
他們決定什麼 發生一切。
我們要改變的變量， 我們調用函數。
我們做事的功能。
對象，而不是在一個 面向對象的語言，
對對象進行排序成為明星， 功能成為那種次要的。
但是，什麼是對象，什麼 是一個對象的這個概念？
那麼，如果有幫助，認為 它在第一個排序
像C結構或結構 我們已經了解了。
在C語言中，一個結構包含 多個字段，
也許我們現在可能會開始 把這些字段屬性。
但性能從來沒有真正 站在自己的，對不對？
如果我定義了一個結構，汽車 像這樣有以下兩個
字段或屬性，一個一個 對於汽車的年整
和另外10個字符 串為汽車的型號，
我可以說這樣的事情， 我可以聲明一個新變量
類型結構的車赫比。
然後，我能說些什麼 像herbie.year等於1963，
和herbie.model等於甲殼蟲。
沒關係。
我使用的領域 結構的範圍內，
但我永遠只是 說這句話。
對？
我不能使用字段名 獨立結構。
這有點一個根本的東西。
>> 所以場是 根本，以C結構
非常相似的屬性是 根本的JavaScript對象。
但是，是什麼讓他們 特別有趣
是，對象也可以具有什麼 被稱為方法，這是真正
只是一個花哨的詞的功能， 是固有的對象為好。
所以這是一個函數，它只能是 所謂在對象的上下文中。
唯一定義一個對象 此函數將其內部，
如果你想想 結構，功能
這些內部定義的定義 結構的大括號內。
因此，它只能意味著什麼 到的結構。
這就是那種我們正在做的 這裡的對象和方法。
這基本上就像我們 定義一個函數，它
不僅使上感 特定的對象，因此我們
調用該對象的方法。
我們永遠不能稱之為 功能獨立的對象，
就像我們不能說一年或模型 獨立於C.結構體
>> 因此，函數式編程 範式是這個樣子。
功能，當你通過，則 在對象作為參數。
在面向對象的編程 語言類的這種變
翻轉，我們會考慮 像這樣，object.function。
因此，那種圓點 運營商再次暗示
它的某種屬性 或對象本身的屬性。
但是，這是一個對象 面向對象編程語言
可能會做，使功能 調用的方法，再一次，這
僅僅是一個特殊的詞功能 所固有的對象。
這是什麼 語法可能是什麼樣子。
因此，我們將開始看到一些 這在JavaScript的上下文。
>> 你也可以考慮的對象 有點像一個關聯數組，
這是我們很熟悉的PHP。
請記住一個關聯數組允許 我們有鍵值對，而不是
具有索引0，一個，兩個，三個， 所以像我們從C使用
陣列。
關聯數組可以映射 即，如在PHP視頻，
我們談論 比薩餅的澆頭。
因此，我們有一個數組 所謂的比薩餅，和我們
有奶酪是一個關鍵和​​$ 8.99是 值，然後香腸是一個關鍵的，
$ 9.99加入是一個值，並依此類推。
因此，我們也可以思考的一個 對象排序的類似締
數組。
所以這個語法在這裡 將創建一個新的對象
叫赫比兩個 它裡面的屬性。
年，其中被賦值為1963年， 和模型，其被分配的串
甲蟲。
>> 並注意在這裡，我使用 單引號中的JavaScript。
您可以使用單或雙引號 當你在談論的字符串。
這只是傳統 的情況下，大多數倍
當你編寫JavaScript， 你只需要使用單引號。
但是，我可以在這裡使用雙引號，和 這將是完美的罰款以及。
>> 所以，記得在 PHP，我們有這個想法
的每個迴路，使我們 遍歷所有鍵值
對關聯的 陣列，因為我們
沒有這種能力來遍歷 通過0，一，二，三，四，
等等？
JavaScript有非常類似的東西， 但它不叫for each循環，
它被稱為在循環。
所以，如果我對我說喜歡 這一點，在對象VAR鍵，
這就是那種類似說法 對每個東西的東西。
但是，所有我在這裡做的是迭代 通過我的所有對象的鍵。
而捲曲的內 牙套那裡，我會
使用對象的方括號鍵指 以在該鍵位置的值。
>> 可替代地，有 即使是另一種方法。
如果我只關心 值，我可以說對象的關鍵，
和剛內使用密鑰。
因此，對於在對象VAR鍵，我有 使用對象的方括號
關鍵的內循環。
對於對象的VAR鑰匙，我可以 只使用鍵循環內，
因為我只是專 說起那裡的價值。
>> 因此，讓我們也許需要 看差
只是為了迅速告訴你 4之間的差
在和用於治療與一個非常具體的 陣，我們這裡有，週陣列。
所以，我必須找到一個新的數組 我充滿了七弦，
星期一星期二星期三， 週四，週五，週六，週日。
我想現在迭代 在這個數組中，
打印出的某些信息。
如果我使用一個在循環 打印出的信息，
你覺得我會得到什麼？
好吧，讓我們一起來看看。
而之前我們跳過去 我的瀏覽器窗口，
只知道 的console.log幾分之一
這樣做在JavaScript中打印的F方式。
但是，什麼是控制台？
好了，這就是我們要去 去看看現在。
>> 好了，我們又回到這裡 在我的瀏覽器窗口，
我要去開 我的開發工具。
再次，我只是打F12 開放的開發工具。
並注意在此間舉行的 上面我選擇控制台。
因此，這是概念 開發者控制台，
它將使我們能夠 打印出來的信息，
有點像終端，但 因為你會看到一個小後，
我們也可以在輸入信息 與我們的網頁交互。
我會在一點點放大這裡， 而我要現在在測試點擊的。
而四test--我不會 告訴你它的代碼，現在，
但你會得到它，如果你 下載源代碼
與此相關聯的video-- 只是，對於在循環
我們看到的只是一個 第二以前的幻燈片。
>> 所以，我要點擊那 按鈕，在這裡，
這裡就是已經打印出來了 控制台，0，一，二，三，四，五，
六。
我沒有打印出的信息 這些陣列單元內，
因為我用在循環中。
和循環的身體內部，我 剛剛打印出來的關鍵不反對鍵。
但是，如果我現在很清楚我的控制台，我 切換到用於測試的，和四個測試的
我說我使用的循環 而不是打印出來的關鍵，
如果我點擊了，現在我得到的 我的對象裡面實際元素
還是我在這種情況下陣。
我的工作日陣列。
我打印出來週一， 週二週三。
所以這之間的差 一個在循環，打印出
只是，如果你只需要使用鑰匙的鑰匙 所述循環體的內部，
和一個for循環，其中打印 出來的數值，如果你只使用
關鍵的循環體內部。
>> 好吧，我們現在怎麼辦開始 連接字符串，也許混淆
插值一些變量 就像我們能夠做到在PHP？
好了，我們非常熟悉的 這個從PHP。
這是我們如何使用做 點運算符來連接字符串。
在JavaScript中，不過， 我們實際使用的東西
所謂的加號，這 也許是更多的哪怕是一點點
直觀的，對不對？
我們加入一些 串在一起。
因此，讓我們頭回 過去看看這是什麼
將打印，如果我們想要打印出來 所有在一周陣列的信息。
好了，所以在這裡 在字符串連接，
我有兩個選擇，串樓 V1，然後串建設V2。
我們會看到為什麼我們 需要在第二V 2。
但是，我要請點擊 串建築V1，這
是我們的代碼 只是走一看，
在與console.log的所有優點之一。
如果讓這種打印的看 出我們所期望的。
>> 星期一是一周中的天數01， 週二的一周的日數11。
好吧，我試圖 這樣做有獲得
它打印出週一的日數 之一，週二當天排名第二。
但似乎像我 總是打印出的。
好了，這是為什麼？
嗯，事實證明，再看看 在這個代碼小片段在這裡。
請注意，我們使用了加 操作者在兩個不同的上下文。
>> 所以這裡的地方也許事情 我們已經那種一直在說，
哦，它是如此之大。
我們不與數據類型的處理了。
但是，這裡的地方的事實 我們失去的數據類型
實際上有點 對我們的一個問題。
現在，再加上運營商是用來 連接字符串，並添加號碼
同時，JavaScript有 盡最大的猜測
至於什麼我希望它為我做。
在這種情況下，它猜錯了。
它只是級聯天，這將是 0個，一個，兩個，三個，四個，五個，或六個，
然後它只是串聯 這一點，然後再連接到之一。
它實際上並沒有把它們相加。
所以這些語言， PHP和JavaScript，
這抽離 這個概念的類型，
你沒有對付它了。
他們還有引擎蓋下的類型。
我們可以在情況 這樣，充分利用了這一事實
說什麼 像這也許，這
告訴JavaScript中，由 這樣，把它當作一個整數，
不把它作為一個字符串，即使 雖然我們串混合在一起
和整數這裡。
>> 這只是其中的一件事情 它看起來如此之大的情況下
我們不必 處理類型了，
但有時你會 碰到這種情況
完全一樣，其中的事實是 你沒有超過類型的控制
可以對你適得其反 如果你不小心。
所以，如果我們彈回過來IDE，我 又要清除我的控制台，
我要去點擊字符串 建設二版，這
在這裡我使用的解析INT功能。
現在，它的打印出 我很期待的信息。
週一的天數之一，星期二 是日數二，依此類推。
>> 因此，讓我們來談談功能了。
我答應大家會談論匿名 功能，現在的上下文為該
終於到了。
因此，在這樣做之前，我們再談 有關數組只是第二次。
所以陣列是一個特殊的 情況下，對象的。
事實上，一切都在 JavaScript是實際上的對象。
因此，功能是 對象的特殊情況，
整數是一個特殊的 情況下，對象的，
但陣列專 有許多方法。
請記住，因為他們的對象， 它們可以有屬性和方法。
它們具有許多方法，這些方法 可以應用到那些對象。
有一個叫方法 大小，array.size，
這將返回到 你，你可能期望
在您的陣列元素的數量。
排序array.pop，像 我們突然離開的想法
一摞，如果你還記得 從我們的堆棧視頻，
刪除該數組中的最後一個元素。
Array.push將一個新元素 到數組的末尾。
array.shift是有點 喜歡DQ，它拼接出
數組的第一個元素。
>> 但也有另一種特殊 陣列的方法稱為地圖。
這是排序的 有趣的概念。
那麼，什麼是地圖的想法？
你會真切地看到這 在其他幾種語言，
我們不是在談論一個 排序製圖師繪製在這裡，
我們談論的是一個映射功能。
在上下文我們 這裡講的，地圖
是一種特殊的操作，我們 可以在陣列上執行
以應用的特定功能 該數組的每個元素。
所以我們會說 這種情況下，也許array.map，
而在它的內部，我們傳遞 進入地圖，我們希望有一個功能
要施加到每一個元素。
所以，這有點類似於使用 一個循環的每個元素遍歷
和應用特定 功能是每一個元素，
只是JavaScript的有這個建於 概念可以應用的映射。
這是一個很大的背景下 談論一個匿名函數。
>> 所以我們可以說，我們有 這個整數數組。
這就是所謂的NUMS，並且它有5 東西在裡面，一，二，三，四，
五。
現在，我要地圖的一些 功能上這個數組。
我想有一個函數應用 到陣列的每個元素。
好吧，讓我們說，我想 要做的只是加倍的所有元素。
我能做的只是使用一個循環 為變種我等於0，I小於
或等於4，我加，再加上，並 再翻一番每一個號碼。
但我也可以做這樣的事情。
我可以說NUMS前身 一二三四五，
不過，現在，我想你 應用映射到這個數組
在這裡我想你 翻番每一個數字。
而這正是 這裡發生了什麼。
但是請注意什麼，我路過 在作為參數映射。
這是一個匿名函數。
並注意我沒有給 此函數的名稱，
我只給它一個參數列表。
所以這是一個例子 一個匿名函數。
>> 我們通常將永遠不會調用此 地圖的上下文之外的功能。
我們將其定義為一個參數 映射，所以我們真的不
需要有一個名字為它，如果 在乎唯一的事情就是地圖
和它的正確定義 地圖在裡面。
所以這是一個匿名函數。
我們一直沒能 預先這樣做。
地圖部分功能 接受一個參數，NUM，
而該函數的作用是什麼 在返回NUM的2倍。
所以在此之後 測繪中得到應用，
這是現在什麼NUMS長相 像，二，四，六，八，十。
我們會突然到我 瀏覽器窗口和公正
看看這個 真的很快為好。
>> 所以，我在這裡有另一個按鈕 在我的主頁稱為雙。
當我點擊加倍，它告訴 我之前是一，二，三，四，
後五二，四，六，八，10。
如果我回去，然後單擊雙 再次，二，四，六，八，十。
再經過，四個， 8，12，16，然後20。
而我是什麼在這個功能做什麼？
那麼，如果我們只是彈出交給IDE和 我拉起我的匿名函數，在這裡
在七號線到13，我 做一點點花哨的工作在這裡，
但我只是打印出 什麼是當前的數組中開始。
然後在線路16，17， 18，還有我的地圖。
這是我在應用此增加一倍 功能到每一個元素。
再遠一點下來， 我只是在做同樣的事情
我在做之前，但現在我 打印出數組的內容
之後。
但是，所有我所做的是 只需使用一個匿名函數
到在整個陣列映射。
>> 因此，多一個很大的話題談談 JavaScript是一個事件的概念。
事件是什麼，正好 當用戶與您的網絡交互
頁面，所以也許他們點擊的東西， 或者在頁面加載完成，
或者他們已經感動 他們的鼠標的東西，
或者他們已經輸入的東西 在輸入字段。
所有這些事情都是事件 這是發生在我們的網頁上。
和JavaScript有 功能支持的時候
調用的事件處理程序， 是一個回調函數
響應的HTML事件。
什麼是一個回調函數？
那麼，它通常只是一個 名匿名函數。
這是一個函數， 響應一個事件。
而這正是我們來到了 結合某些功能的想法
到一個特定的HTML屬性。
大多數HTML元素有 對於屬性的支持
我們沒有談論的HTML 這樣的事情在點擊視頻
或懸停或負載， 所有這些事件
然後你可以寫函數 該處理這些事件
當這些事件 出現在網頁上。
>> 所以，也許你的HTML 看起來是這樣的。
我有兩個按鈕在這裡， 按鈕一個，兩個按鈕，
這裡我有現在 定義什麼都沒有，
但是，這是其中所述屬性 點擊顯然是我的HTML標記的一部分。
所以很明顯，當我定義什麼是 該屬性中的想法，
這將是一些JavaScript 函數，響應該事件
想必點擊的 按鈕一鍵兩種。
>> 有什麼樣的很酷，這是我們 可以寫一個通用的事件處理程序。
而這個事件處理程序將 創建事件對象。
而事件對象會告訴我們 這兩個按鈕被點擊。
現在怎麼運作的？
那麼，它可能會是這個樣子。
因此，我們將首先定義我們的按鈕 不得不回調一個響應
函數將被調用 單擊該按鈕時，
我們稱之為事件警報名。
並注意在這兩種情況下，我們是 通過本次活動參數。
因此，我們調用這個函數 或者這個功能時，
由事件發生觸發， 它會創建這個事件對象
並把它作為一個 參數警報名稱。
而該事件的對象是 要包含的信息
哪個按鈕被點擊。
它是如何做到這一點？
那麼，它可能會是這個樣子。
所以，現在在我的獨立 JavaScript文件，我可能
要找到這個 功能警報名稱，
再次接受事件參數。
然後這裡是我檢測 該按鈕被觸發，
VAR觸發等於事件 點源元素。
那是什麼創建的源 這是通過本次活動的對象？
是不是按鈕一次，抑或是兩個按鈕？
>> 然後，在這裡我做的是 打印出trigger.innerhtml。
那麼，在這種情況下，在該 的背景下，trigger.innerhtml
只是寫了什麼按鈕。
碰巧，如果我們跳 回一秒鐘，那會
是什麼在這些按鈕標記之間。
這將是按鈕的一個或兩個按鈕。
讓我們來看看 如何事件處理程序會
看，如果我們有它運行在實踐中。
>> 所以首先，你 開闢了events.js，
這是JavaScript文件，其中 我已經定義了這個功能。
正如你所看到的，這是 幾乎什麼
我們只是在一秒鐘前看到的幻燈片。
我會去到了 我們一直在使用的主頁。
而我這裡按鈕 一個，兩個按鈕。
我會按一下按鈕之一。
你點擊的按鈕之一，如果你 可以看到這裡的戒備。
好。
點擊兩個按鈕，您 點擊一個按鈕兩種。
>> 因此，這兩個按鈕具有 同樣的函數調用，對不對？
他們都警覺名 事件，但此事件對象
這被創建時，我們點擊 它告訴我們哪個按鈕被點擊。
我們沒有寫兩個獨立 功能或處理有
通過任何其他信息。
我們只是依靠 什麼樣的JavaScript會
做對我們來說，這是創建 排序代表我們的活動對象。
還有很多事情需要JavaScript的比 我們已經討論了在這段視頻中，
但有這些 根本應該讓你
相當長的方式來 學習一切你
需要了解這一 有趣的語言。
我是道格·勞埃德。
這是CS50。