javascript
我们与专家讨论了JavaScript –文字记录
今天上午與專家對話的主題是JavaScript,我們的專家是Ara Pehlivanian,這是我們最新著作《 Jump Start JavaScript》的合著者。 這是一個繁忙的會議,問題從基礎到高級不一而足,令人耳目一新。 阿拉出色地抵御了部落,甚至設法度過了一段愉快的時光。 令人印象深刻。
會話中產生了很多有用的資源,下面列出了這些資源,以節省您對整個成績單的篩選。 如果您錯過了會議并想看看一切如何進行,那么您很幸運–您還將在下面找到完整的筆錄。
資源:
Ara的書–快速入門JavaScript (您可以免費預覽第一章 )
關于如何幫助人們學習編程的有趣文章。
Douglas Crockford的真棒JavaScript資源
關于原型的有趣文章
一對夫婦的JS掉毛工具: JSLint的 & JSHint
如何激活瀏覽器的控制臺以訪問調試器
Mozilla的JS資源站點
WebPlatform.org上的JavaScript資源
方括號 –開源代碼編輯器
Github上的jQuery
Github上的YUI
Github上的骨干網
在Github上強調
最后-一些JS模板工具: Moustache JS Handlebars JS和Underscore
如果您由于不了解而錯過了本次會議,請確保在此處注冊以獲取有關未來會議的電子郵件通知 。
最后, 下周我們將嘗試一些不同的東西 。 我們內部的CSS專家Alex Walker將幫助您解決可能遇到的任何棘手的CSS問題,所以請不要錯過任何一個。
現在...成績單。 請享用。
[21:23] <HAWK>大家好-我們很快就會開始。 在此期間,隨時自我介紹。
[21:23] <Ara>嗨,我叫Ara,我與Don Nguyen共同撰寫了Jump Start JavaScript。 :)
[21:24] <codepo8>我的名字叫克里斯,我喜歡網絡
[21:25] <HAWK>我是Hawk,我是SitePoint的社區經理–我將主持本次會議
[21:30] <HAWK>對–所以我們不妨開始
[21:30] <HAWK>您真正需要知道的只有兩件事。 您可以@標記人物以引起他們的注意,并且您可以隨時提出問題。
[21:30] <HAWK>如果Ara在回答別人,我會把他們排隊給他
[21:31] <Ara>因此,我在寫書時發現有趣的一件事是試圖弄清楚解釋這些內容的順序。
[21:31] <HAWK>我想大家都知道Ara是我們的專家,并且他是我們的最新書《 JumpStart JavaScript》的作者,該書將于今天發布
[21:31] <HAWK> https://learnable.com/books/jsjavascript1
[21:33] <時代>許多事情是相互依存的。 因此,例如,在解釋數組時,有一些實例可以使用函數對數組進行處理,但我們尚未涵蓋函數……
[21:33] <Ara>…這就是其中之一,“我們稍后會詳細介紹”。
[21:33] <阿拉>發生了幾次。
[21:33] <codepo8>這很棘手
[21:33] <薩加爾>這是一個很好的思路。
[21:33] <codepo8>我個人希望“ hello world”在大火中死亡。
[21:33] <johnlacey>哈哈。 我愛“ Hello world”。
[21:33] <HAWK>是的-盡管“ Hello World”有 話要說
[21:33] <codepo8>在上下文中解釋概念使人們更加興奮。
[21:34] <MalCurtis>應該有一本與語言無關的通用“編程基礎”書,要求所有人在閱讀任何其他編程書之前都必須閱讀它
[21:34] <Ara>可悲的是,我確實使用了“你好,世界”。 一次或兩次。 但是我想我也參加了一些“世界統治”。
[21:34] <阿拉>;)
[21:34] <Velochicdunord>是的。 作為一名CS學生,我的問題之一就是簡單地從現有的庫和API開始
[21:34] <MalCurtis>因為每本書都必須涵蓋該廣告的無限內容
[21:34] <steven> MalCurtis,計算機編程藝術:P
[21:35] <codepo8>可學習的編程正試圖破壞這個想法。 http://worrydream.com/LearnableProgramming/ ,我已經看到人們開始采用這種方法。
[21:35] <MalCurtis> steven JumpStart:每種語言……從此。
[21:35] <Velochicdunord>我的意思是Javascript API。 例如,對于Web開發人員和游戲而言,哪些最有用。
[21:35] <Ara> Velochicdunord:在兩種情況下,很多核心API都是有用的
[21:36] <Ara> Velochicdunord:或者您是說DOM API?
[21:37] <codepo8>從游戲開始是危險的。 為了使游戲正常工作,您需要走很多彎路,并引入許多僅適用于游戲的概念,例如股票代碼和主循環。 在“網站”或“ Web應用程序”場景中,您永遠不需要它。
[21:37] <Ramy>難道我只是在2007年認為過時的教學方式就是JavaScript書嗎?
[21:37] <Ara> Velochicdunord:如果您要開發游戲,那么大部分游戲將使用核心語言的邏輯運算符,數據操作等來構建……這是當您進入渲染時,游戲與游戲的選擇制作網站。
[21:38] <HAWK> Ramy Simply JavaScript仍然是有效的資源,但是正如您所說,它是前一段時間編寫的,因此這本新書
[21:38] <Ara>您可以選擇使用Canvas渲染游戲,也可以使用在DOM中操縱的精靈
[21:38] <Ramy>感謝HAWK的回復:)
[21:38] <brick> @Ara關于瀏覽器的依賴性如何? 使用jQuery更安全嗎?
[21:38] <Velochicdunord>好–看一下DOM(我還沒有做過):P
[21:39] <Ara> Ramy:我不會說它已經過時,但是JavaScript仍在繼續發展,因此我們需要跟上這種發展。
[21:39] <Velochicdunord>那么–哪些位最適合哪種用途? 可用的庫每月遞增。
[21:39] <Ara>磚:絕對更安全,而且節省大量時間,但是始終牢牢掌握本機JavaScript總是更好地了解庫中發生了什么。
[21:39] <Ramy>謝謝Ara :)
[21:40] <HAWK>對于會議中的其他所有人–如有疑問,請不要等待。 快進去,我將他們排隊。
[21:40] <Ara> Velochicdunord:DOM基本上是將網頁的HTML轉換為對象的層次結構。 使用DOM意味著更新網頁。
[21:40] <JoshySav>剛剛加入:一個問題:jQuery還是純JavaScript?
[21:41] <Ara> JoshySav:取決于您在做什么。 很多時候,您不想重新發明輪子,jQuery。 但是您不會在jQuery中編寫100%的代碼,因此就可以使用本機JavaScript。此外,了解jQuery的功能也很不錯。
[21:41] <brick>我聽到回聲
[21:42] <johnlacey>如果您正在做一些簡單的事情,則可能需要避免JQuery的額外負擔。
[21:42] <Ara> JoshySav:另外,隨著JavaScript的發展,jQuery過去所做的許多事情在瀏覽器中都變得本機可用。 例如,很長一段時間以來,我們習慣于手動編寫getElementsByClassName。 現在,庫將移交給本機方法(如果存在)。
[21:42] <Ara> johnlacey:是的。 這是根據具體情況做出的決定。
[21:42] <阿拉>磚頭:道歉:)
[21:42] <JoshySav>太感謝了:)
[21:43] <johnlacey> @Ara —那么您認為Java初學者應該注意的任何菜鳥錯誤?
[21:43] <JoshySav>還有一個問題,為什么網絡上有這么多技術使用JavaScript?
[21:43] <codepo8>需要很多jQuery來填補瀏覽器支持中的漏洞并簡化訪問文檔的復雜方式。 這已經改變了。 瀏覽器更符合標準,我們使用jQuery所做的很多事情都可以在CSS中完成,并且可以通過瀏覽器為您加速硬件和優化內存。
[21:44] <HAWK> johnlacey –我想說要依靠它,考慮到這些天來有那么多人禁用它;)
[21:44] <johnlacey> @霍克-絕對。 那是我的恐懼。 大聲笑
[21:44] <Ara> johnlacey:變量范圍可能是一個問題。 如果您不了解變量作用域,則可能會覆蓋數據并導致錯誤。 另外,理解類型強制是另一種。 不知道==和===之間的差異可能會導致意想不到的后果。
[21:44] <codemaestro>我還沒有完全關注。 作者是贊成還是反對修改JavaScript對象原型?
[21:45] <Velochicdunord> Thx codepo8。
[21:45] <codepo8> @HAWK很好,將人們拒之門外。 您可以依靠JS –如果您構建的是使體驗更加流暢的工具。 基本功能應該始終是給定的。 鏈接應指向某個地方,而不是觸發可能已損壞的JavaScript。
[21:45] <HAWK>密碼大師-尚未涵蓋。 讓我們扔給阿拉
[21:45] <Ara> JoshySav:JavaScript是瀏覽器的事實上的腳本語言。 過去,您可以在Microsoft的Visual Basic和JavaScript之間進行選擇,但JavaScript贏了。 目前正在努力引入競爭性腳本語言(例如Google的Dart),但是JavaScript幾乎是唯一的選擇。
[21:46] <JoshySav>阿拉謝謝:)
[21:46] <JoshySav>與有頭腦的人交談真是太好了;)
[21:47] <Ara>代碼大師:這是一個敏感的話題。 一些庫做到了這一點,有些開發人員對此很滿意,但是您必須記住,在網絡上,您的代碼經常會與其他人共存,因此,如果您真的喜歡本機對象原型,則可以開始與其他人的代碼發生沖突。
[21:47] <阿拉> JoshySav:我想你是說其他客人。 :)
[21:47] <johnlacey> @Ara —鑒于可以禁用Javascript(如@Hawk先前指出的),您是否應該避免某些事情?
[21:47] <HAWK>我認為他是在談論我阿拉
[21:47] <JoshySav> :)
[21:47] <Ara> HAWK::)
[ 21:48 ] <JoshySav>老實說,有多少人關閉了JavaScript?
[ 21:48 ] <codemaestro>謝謝Ara-答案是,“取決于情況”。
[21:48] <HAWK>是的,有趣的問題JoshySav。 我(顯然)在SitePoint論壇上花費了很多時間,因此我的觀點出現了偏差–但是那邊有相當大數量的人這樣做……
[21:48] <Ara> johnlacey:這完全取決于您正在構建的站點/應用程序。 如果需要100%可訪問性,則需要研究漸進式增強功能,該站點可以在使用和不使用JavaScript的情況下工作。 但是并非所有站點和應用程序都具有該要求,因此您可以使用純JavaScript應用程序。 視情況而定。
[21:49] <HAWK>輔助功能人員
[21:49] <codepo8>在加載并執行第一個腳本之前,每個人都必須關閉JavaScript。 如果那里出了問題,而您的整個應用程序都依賴于此,那么您將失去一個用戶。
[21:50] <johnlacey>我的生活中有很多形式驗證都依賴于Javascript……但是我想我將不得不使用PHP后備,以防萬一。 大聲笑
[21:50] <Velochicdunord> Ara –關于Java腳本實現和使用的最佳實踐的任何推薦資源(當然,除了您的書之外)? 你的書涵蓋了這個嗎?
[21:50] <ginader>特別是在移動環境中,用戶更有可能無法加載js而不是關閉js
[21:51] <Ara> johnlacey:根據經驗,您永遠不應依賴JavaScript作為唯一的數據驗證形式。 由于人們不僅可以關閉JavaScript,而且還可以弄亂瀏覽器中的值和功能,因此它應該比提供保護措施更方便。
[21:52] <codepo8> ^那。 我有cURL,我將使用它!
[21:53] <codepo8>前一天,由于JS錯誤,Chrome下載頁面無法正常工作半天: http : //icant.co.uk/talks/h5/pictures/jqueryeu/chrome-download- broken.png –這里最大的明顯錯誤是“ javascript:void(0)”鏈接。 這些是我們當今時代不應該犯的罪行。
[21:53] <Ramy>這本書是解釋JavaScript語法和DOM并在瀏覽器中使用它,還是現在正在為移動平臺使用的應用?
[21:53] <HAWK>我對Velochicdunord的問題感興趣:關于Java腳本實現和使用的最佳實踐的任何建議資源(當然,除了您的書之外)?
[21:53] <Ara> Velochicdunord:我在書中介紹了一些最佳實踐,但是我不深入。 關于最佳JavaScript做法,有幾種思路。 就我個人而言,我將其歸因于Douglas Crockford( http://www.crockford.com/)的思維方式。 在jQuery社區中,您會發現很多防御性編程技術,例如將代碼封裝在
[21:53] <Ara> IIFE(立即調用函數表達式),其中“ undefined”和“ window”的值被重新初始化。
[21:54] <Velochicdunord>我今年二月剛找到Doug Crockford。 仍然有很多不足之處。
[21:54] <codepo8>您之前失去了他嗎?
[21:54] <Ara>在JavaScript上指向Crockford的更具體的鏈接: http : //javascript.crockford.com/
[21:55] <Ara> Ramy:這本書介紹了JS語法和DOM,但未明確涉及移動環境。
[21:55] <Velochicdunord> codepo8 :) –不–作為菜鳥,以前沒有聽說過他。 大約是他關于Javascript歷史的系列講座的一半。
[21:56] * Mattevans用大鱒魚拍打MalCurtis一點
[21:56] <HAWK>啊–舊的鱒魚巴掌
[21:56] <mattevans> :-)
[21:56] <johnlacey>哈哈。 我從來沒有見過鱒魚的耳光。
[21:57] <Ara> Velochicdunord:他是JSLint( http://www.jsliint.com)的作者。 這是一個JavaScript整理工具,可幫助您查找代碼中的錯誤。 從本質上講,它是對代碼樣式的克羅克福德思想流派的一種提煉。 某些人與他不同,并分叉了JSLint并創建了JSHint( http://www.jshint.com) ,它具有相同的作用
[21:57] <Ara>,但 據稱 更為友好。
[21:58] <HAWK>事情現在變得安靜了–有人問過一個尚未得到回答的問題嗎?
[21:58] <ralphm>我讀過許多JS書籍,但是當我一個人呆著時,我確實很難用JavaScript進行“思考”。 如果某事不起作用,則很難知道該轉向何處。 通常,JSLint和JSHint報告該代碼很好,但是卻無法正常工作。 那么問題來了:“我該如何與瀏覽器對話?” 除了谷歌搜索以外,還有其他任何下一步建議嗎?
[21:58] <Velochicdunord> Merci –是的,創立了JSLInt&Hint業務。 :)
[21:58] <codepo8>與道格拉斯一起工作了一段時間讓我大開眼界。 他知道自己的東西,但是對事情可能很教條。 我喜歡。 如果您沒有讓生活中的任何人煩惱,那么您可能沒有意見或新想法。
[21:59] <Ara> ralphm:學習愛調試器。 我發現,如果您在代碼中設置斷點然后逐步執行,并密切注意傳遞的值,則通常會很快發現問題所在。
[22:00] <codepo8> @ralphm瀏覽器中的開發人員工具會在很多情況下告訴您哪里出了問題。 JSLINT僅告訴您明顯的語法問題。 例如,無法捕獲交互失敗或格式錯誤的數據。 那是瀏覽器的錯誤控制臺為您提供幫助的地方。
[22:00] <Ara> ralphm:現在所有主要的瀏覽器都已內置調試器。 在本書的第一章中,我實際上介紹了如何激活瀏覽器的控制臺以訪問調試器: https : //learnable.com/books/jsjavascript1/online/ch01.html#d5e162
[22:00] <Barney>容易惹惱某人……只需說“ MS Rulz!”
[22:00] <Velochicdunord> Barney :)
[22:00] <johnlacey>我希望我有更多問題……但是我正在等待咖啡流到我的大腦。 但是,我已經下載了這本書,并期待閱讀。
[22:01] <codepo8>也只是在控制臺上玩而已。 鍵入導航器。 并查看瀏覽器為您提供的所有內容并與他們一起玩。 很多時候,您會找到從未聽說過的功能。
[22:01] <ralphm>除了在各個點使用console.log()來查看代碼的作用之外,并沒有真正讓我忙于調試。 問題是,如果出現問題,它不會說要嘗試其他方法,這就是我遇到的困難。
[22:01] <巴尼>“ ..當之無愧的鞠躬!”
[22:01] <Ara> johnlacey:隨時可以讓我提出更多問題。 我是Twitter上的@ara_p
[22:01] <阿拉>這也適用于其他任何人。 我總是可以隨時回答問題。 ^^
[22:01] <johnlacey> @Ara-謝謝!
[22:02] <codepo8>,然后轉到https://developer.mozilla.org/en-US/docs/JavaScript ,了解這些事情的發生方式和原因。 由勤奮工作的專家團隊維護的令人難以置信的資源,他們現在應該睡覺。
[22:02] <Ara>,我的意思是“高興”。 :)
[22:02] <JC>我有一個問題:如果一個人知道jQuery和基本的Js語法,那么在專業水平上真正了解Javascript的最佳方法是什么?
[22:02] <codepo8>也是http://www.webplatform.org/,是一門嶄新的一站式商店,用于管理Web內容,而不是傳聞w3schools或stackoverflow。
[22:02] <Velochicdunord>我第二次提出JC的問題。
[22:03] <codepo8>當然還有sitepoint :)
[22:03] <Ara> ralphm:我想我需要寫一篇有關調試的博客文章。 :)
[22:03] <codepo8> @JC深入研究了一些庫和工具的源代碼。 Adobe的Brackets是一個非常熱門且制作精良的項目, 網址為http://brackets.io/
[22:04] <Ara> JC:打開jQuery源代碼,看看它們在做什么。 這將為您提供很多專業水平的見解。 同樣,在GitHub上有很多項目。 另外,在空閑時間,嘗試編寫代碼,讓您想到的最瘋狂的事情。
[22:04] <ralphm> @Ara那太好了。 :-)
[22:04] <Ara> Velochicdunord ^^
[22:04] <Barney> KEVIN YANK和CAMERON ADAMS撰寫的簡單JAVASCRIPT我剛剛讀完—感謝SitePoint,這本書不錯
[22:04] <Ara>巴尼+1
[22:04] <codepo8>第一次我看到SIMPLY尖叫
[22:04] <Velochicdunord>跟隨GitHub上的一堆庫
[22:04] <HAWK>呵呵,很高興為巴尼服務
[22:05] <HAWK>歡迎NickY –隨時提問(如果有任何疑問)
[22:05] <Ara> Velochicdunord&JC:您可能會更喜歡那些比較流行的開源項目,因為他們有更多的眼睛在審查代碼。
[22:05] <Barney>沒問題,哈克–我從你們那里讀了20本書,參加了5堂課—我一直在吹牛siteP和Lean…一直
[22:05] <Velochicdunord>對于開源遵循什么建議?
[22:05] <Ara>關于開源項目,這是一件很了不起的事情,您無法擺脫垃圾郵件-至少如果您的代碼足夠流行以至于有很多人在看它,那您就不行了。 :)
[22:05] <巴尼>…爭取免費的一個月!” *微笑*
[22:06] <Barney>這里的WP書是很棒的開源指南…
[22:06] <codepo8>是的,開放意味著您的成功和失敗為您說話
[22:06] <Velochicdunord>擁有一些。 :)
[22:06] <HAWK> Ah Capt_Snickle_Fritz –很高興再次見到您
[22:07] <Ara> Velochicdunord:jQuery( https://github.com/jquery/jquery), YUI( https://github.com/yui/yui3), Backbone( https://github.com/ documentcloud / backbone),下劃線( https://github.com/documentcloud/underscore)
[22:07] <Velochicdunord> Thx
[22:07] <Capt_Snickle_Fritz>同樣是HAWK
[22:07] <Barney> Vel,您有Anthology書嗎?
[22:08] <Ara>我猜“來吧,兄弟!” 不是問別人更多問題的最佳方法,是嗎? ;)
[22:08] <HAWK>呵呵,喜歡它Ara
[22:08] <HAWK>但是,是的-如果有人有問題,請在有空間的情況下立即加入!
[22:08] <阿拉>這很有趣。
[22:08] <HAWK>您擁有它。 辛苦了
[22:09] <阿拉>感謝客人。 很好的問題,伙計們。
[22:09] <codepo8>為什么以下行不是JavaScript錯誤:
[22:09] <codepo8> http://vanillawebdiet.com
[22:09] <HAWK>剛加入的您好–如果有任何疑問,請隨時加入。 您可以今天晚些時候在SitePoint上查看完整的成績單。
[22:09] <Ara> codepo8:技巧問題,因為其中沒有JavaScript。 ;)
[22:09] <codepo8>否
[22:10] <HAWK>您也可以在這里查看Ara的書https://learnable.com/books/jsjavascript1
[22:10] <codepo8>在腳本中嘗試它,不會觸發錯誤
[22:10] <Ara> codepo8:我想知道IRC客戶端是否過濾掉了代碼,然后因為我看到的只是vanillawebdiet.com URL
[22:10] <Ara>也許將其粘貼到jsfiddle中?
[22:10] <Velochicdunord>否– WP忍者新手有點令人失望–內容不足。 之后,不再購買其他SitePoint圖書。
[22:11] <HAWK> IRC客戶端不應這樣做–應該將其粘貼為要點
[22:11] <ralphm>好吧,我不妨問一下。 無論我閱讀了什么(書籍和在線書籍),我都無法找到關于“原型”是什么的簡單概念上的答案。 例如Array.prototype。 誰能提供一個盆栽的解釋?
[22:11] <Ara> Velochicdunord:如果要預覽,可以隨時在此處閱讀Jump Start JavaScript的第一章: https : //learnable.com/books/jsjavascript1/online/ch01.html
[22:11] <Velochicdunord>第二拉爾夫的問題!
[22:11] <codepo8> https://jsfiddle.net/jp5PZ/
[22:11] <Velochicdunord> Thx,阿拉。
[22:13] <HAWK>我只是想告訴您,如果您想提醒以后的會議,請在此處注冊郵件列表http://www.facebook.com/sitepoint/ app_115462065200508
[22:13] <codepo8>本文在原型方面非常出色: http ://dailyjs.com/2012/05/21/js101-prototype/
[22:14] <ralphm>感謝codepo8。 會檢查出來的。
[22:14] <Ara> ralphm和Velochicdunord:因此,JavaScript的繼承模型是原型。 基本上,這意味著一切都是對象,并且對象是從對象繼承的,因此當您從對象繼承時,您就是在繼承其原型對象。 (黨長,我不清楚)
[22:14] <Velochicdunord>不-很好。
[22:14] <HAWK> Hey Jess
[22:14] <JC>謝謝您的回答
[22:15] <codepo8>關于我的錯誤–暫停填充– JS中這樣的URL實際上是一個JavaScript標簽,后跟一個注釋,因此沒有語法錯誤。 標簽已不再使用。
[22:15] <scruggs>您是否可以將其歸類為JS語言本身的局限性? 畢竟,直到最近,jQuery和Node.js之類的工具才再次在JS社區中大受歡迎。
[22:15] <jessirwin>嗨
[22:15] <Ara> codepo8:很奇怪,因為在Chrome控制臺中,我收到以下錯誤:SyntaxError:意外令牌}
[22:16] <Ara> JC:我很高興!
[22:16] <Ara> scruggs:我不確定我是否會跟隨。 什么被歸類為潛在限制? (原型?)
[22:17] <Ramy> HAWK郵件提醒功能不錯,但我希望在類似活動的帖子旁邊還有Facebook提醒功能
[22:17] <codepo8>散布了我想說的不同受眾。 jQuery大大降低了障礙,并且專注于DOM訪問和小部件之類的界面元素創建。 它使訪問文檔和更改文檔中的內容變得非常容易。 Node將JS移至服務器并不受DOM的阻礙,從而吸引了新的讀者。 JS的主要推動力是HTML5和Flas
[22:17] <codepo8> h的可靠性較差,因為最新最熱的設備(iOS)不支持它
[22:17] <HAWK>非常好的觀點Ramy –我可以完全將它們發布為事件。
[22:18] <Barney>感謝您讓我加入,在反面看到大家…
[22:18] <阿拉>干杯,巴尼!
[22:19] <codepo8>意外令牌來自jsfiddle的包裝器。
[22:19] <NickY>有沒有好書著重于將JavaScript用于游戲?
[22:19] <Ara> codepo8:我在jsfiddle中沒有得到錯誤,我直接在chrome控制臺中得到了。
[22:19] <scruggs>好的...也許這不是一個限制。 我想我仍在努力進入JS方面……從許多JS應用程序所經歷的痛苦中繼承。 例如,跳入諸如Knockout.js和Backbone.js之類的框架……似乎真正的訣竅是學習框架及其限制,而不是學習
[22:21] <codepo8>如果您要堅持具有完全繼承和變異的基于類的語言的思維方式,而其余的則最好遵循您提到的框架。 JavaScript不會很快在所有理解它的軟件中可靠地進行更改,因此嘗試“更改JavaScript以使其更像lang”
[22:21] <codepo8> uage $ x“毫無用處。
[22:22] <codepo8>就是說,TypeScript和Dart允許您執行這些操作并為您轉換為JavaScript。
[22:22] <NickY>我同意你們Scruggs。 您必須學習框架。 您可以使用幾乎不了解js本身的jquery來構建應用程序
[22:22] <Ara> scruggs:通常,您不需要了解繼承就可以在JavaScript中執行強大的功能。 但是知道它可以幫助您將代碼提升到另一個層次。 也就是說,這并不總是必要的。 您是對的,盡管在框架領域中,與其說是了解JavaScript,還不如說是因為他們在工作,這是因為他們了解API /語法
[22:22] <Ara>在那時完全不同。 您從某種語言的細節中抽身而出,并且正在使用框架的API。
[22:23] <codepo8> NickY當然是以依賴框架為代價的。 如果您使用的是帶有大量jQuery的文檔,但實際上并沒有真正考慮緩存和重用它所訪問的內容,那么當您要將應用程序發布到移動設備時,您將非常失望。
[22:24] <codepo8>(免責聲明:我現在專注于FirefoxOS設備-針對新市場的低規格智能手機,因此每個事件處理程序和每個DOM訪問都會受到傷害):)
[22:25] <Ara> scruggs和NickY:盡管無論是庫還是框架,您仍然需要對變量,變量類型,邏輯運算符,數組,對象,函數有基本的了解……您仍然需要使用這些知識東西。 jQuery為您提供了幫助者來訪問DOM元素并遍歷對象,而Backbone讓您可以做一些很棒的MVC事情,
[22:25] <Ara>最后,您仍然在編寫JavaScript并傳遞值并對其進行操作。 因此,您仍然需要了解JS。
[22:25] <HAWK> 5分鐘路程。 如果您不熟悉JavaScript,并擔心聽起來有些笨拙,但有疑問,請提出。
[22:25] <HAWK>當您學習時,沒有愚蠢的問題
[22:25] <阿拉>沒有愚蠢的問題:)
[22:26] <Ara> HAWK *轟!
[22:26] <HAWK>確實如此
[22:26] <BluePandaStudios> codepo8 / Ara:我來晚了,所以我很抱歉如果涉及到這一點,但是有沒有建議您考慮移動訪問的框架?
[22:26] <NickY>很好,但是jquery中有很多函數甚至不需要知道
[22:27] <johnlacey> @HAWK我很確定我今天已經激怒了技術專家……但是我在Facebook頁面上收到有關與專家交談的電子郵件通知……并且輸入后是否應該有一個單擊按鈕?細節? 因為沒有。 大聲笑
[22:27] <codemaestro>哦,是的。 有多少用戶實際上在使用ExtJS / Sencha Touch與jQuery Mobile?
[22:27] <scruggs> ara…我認為最困難的部分是試圖學習語言在某些時候的合作方式。 我按行業是C#程序員,但是我試圖在JS社區中站穩腳跟,所以我一直在嘗試學習有關基因敲除.js,主干的所有知識,并嘗試使用node.js進行構建。
[22:27] <Ara> BluePandaStudios:我不知道我知道jQuery有一個移動組件,而YUI內置了移動組件(以及可以使用的特定于移動設備的模塊,如觸摸控件)
[22:28] <BluePandaStudios>另外,您認為對庫的任何反饋都是“ _must checkout _”(jQuery ...除外)?
[22:28] <NickY>以$(element).is(':hidden')為例-無需了解任何核心js基礎知識,jQuery會為您完成所有這些工作
[22:29] <NickY>我喜歡jquery,但有時我認為它使我們變得懶惰。
[22:29] <Ara> scruggs:我認為您正在學習這些框架真是太好了。 但是我認為您應該花一些時間來瀏覽本機JavaScript,以更好地了解JS如何處理松散類型和類型強制或變量作用域。 隨著您的程序變得越來越復雜,這些事情變得很重要。
[22:29] <HAWK>哦,約翰拉西,你把它弄壞了。
[22:29] <codepo8> BluePandaStudios的sencha觸摸效果很好,jQuery mobile需要一些修飾,Zepto.js暫時是一個非常輕量級的。 很大程度上取決于您的工作。 有時候,您只需要錘子.js之類的東西(這使觸摸交互變得簡單)
[22:29] <HAWK>好,我有–對不起! 立即修復。
[22:29] <johnlacey> @HAWK-這樣看來。 大聲笑
[22:30] <scruggs> Ara:我肯定會再次回到JS的基礎知識。 上一次我使用本機JavaScript嘗試遍歷DOM時經歷的很痛苦! :)
[22:31] <Ara> NickY:jQuery絕對比每次都寫出幕后做的事更方便。 也就是說,了解它在做什么可能會有所幫助。 特別是如果您要編寫Web應用程序的代碼,這些應用程序會在客戶端中進行很多繁重的工作,而在DOM層上則不必要。
[22:31] <HAWK>一小時后再檢查johnlacey –在本次會議之后,我將對其進行整理
[22:31] <codepo8> NickY我會在那里爭論,如果您不知道YUI的某些元素何時被隱藏,則需要讓瀏覽器告訴您(這意味著它需要訪問DOM和嘗試一下),那么您還沒有計劃好用戶界面。 瀏覽器在那里顯示,而不是保留顯示邏輯。
[22:31] <scruggs>有沒有漂亮的JS模板工具?
[22:31] <Ara> NickY:例如,如果您要編寫基于JS的電子表格,例如Google Docs中的電子表格。 我敢肯定,幕后正在發生大量的非庫JavaScript操作。 當需要渲染這些東西時,他們可能會使用一個框架。
[22:32] <HAWK>哇,時間已經過去了。 我們將需要開始包裝東西,以便我可以免費割掉Ara
[22:32] <codepo8>如果您將CSS類添加到父元素并將此邏輯保留在CSS中,您會驚訝地發現您不需要遍歷DOM多少次。
[22:32] <HAWK>我將不再打新問題,但我不會關閉房間,因此您可以隨意閑逛并聊天,只要您愿意
[22:32] <codepo8> scruggs是– mustache.js和handlebars.js
[22:32] <johnlacey>謝謝@Ara @Hawk
[22:32] <HAWK>不要忘記查看Ara的新書https://learnable.com/books/jsjavascript1
[22:33] <阿拉>斯克魯格斯:是的。 您擁有Mustache JS( https://github.com/janl/mustache.js/)、 Handlebars JS( http://handlebarsjs.com/)甚至Underscore都有一個模板系統( http://underscorejs.org /#模板)
[22:33] <HAWK>下周同一時間,我們將與Alex Walker一起運行實時CSS代碼修復會話
[22:33] <codemaestro> This has been a real ADHD experience.
[22:33] <Ara> scruggs: just off the top of my head
[22:33] <Ara> codemaestro: tell me about it! :D
[22:33] <NickY> I agree ara, I guess all I was really trying to say is that I believe everyone should get a strong understanding of js before turning to libraries
[22:33] <Ara> I hope I didn't miss anyone's questions. Please repeat them if I did.
[22:34] <codemaestro> NickY or go into the libraries with a desire to find the underlying behaviours
[22:34] <HAWK> I want to say a huge thanks to Ara – you've been an absolute legend today, handling the hoards alone
[22:34] <codemaestro> I had a problem with $(elem).text(”) not producing the same result in two different point versions of Chrome.
[22:34] <Ara> NickY: I agree. Although over the years, the hardcore engineer in me has given way a little to the business dude in me who says that sometimes, to get the job done, you can just go the route of not having to know everything. (Shhhh, don't tell anyone I said that.) ;)
[22:34] <HAWK> Much appreciated
[22:34] <codemaestro> @ara LOL
[22:34] <Ara> HAWK: You're too kind. :)
[22:35] <NickY> Ara lol yes I have been getting to that point. I blame freelancing:)
[22:35] <BluePandaStudios> HAWK, thanks for the talk, great time!
[22:36] <scruggs> Thanks. I am pleased with the suggestions and that nudge forward to continue learning more about the basics of JS and the technologies that incorporate it!
[22:36] <Ara> codemaestro: Yeah, i'm not sure what text() uses under the hood, but it could be that they didn't account for changes from one Chrome release to another.
[22:36] <NickY> HAWK – is there a way to get alerts without going to Facebook?
[22:36] <Ara> codemaestro: I know that there are differences between IE and the rest of the browsers when it comes to innerText and textContent, so it could be something like that.
[22:37] <HAWK> NickY not at the moment, but you don't need to have a Facebook account to use that form
[22:37] <NickY> Oh ok sweet I will do that then
[22:37] <codemaestro> true. eventually i discovered through trial/error/much googleing that the element needed the hasLayout property or something to be set.
[22:38] <NickY> thanks to ara, hawk, and everyone. This was fun.
[22:38] <codemaestro> I got a few more library names to scope out when I have time.
[22:39] <Ara> codemaestro Ahh.. the legendary hasLayout ;)
From: https://www.sitepoint.com/we-talked-javascript-with-the-experts-here-is-the-transcript/
總結
以上是生活随笔為你收集整理的我们与专家讨论了JavaScript –文字记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于OpenCV的人脸识别考勤系统(三)
- 下一篇: MTK芯片技术资料大全,各个型号都有,包