Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 精品无码久久久久国产,国产三级在线观看播放,无遮挡很爽很污很黄很色的网站

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          We Are Coming !育知同創(chuàng)首期iOS培訓(xùn)精英班震撼來襲!

          然人生的幕布已經(jīng)拉開,就一定要精彩的演出。

          既然前進(jìn)的腳步已經(jīng)跨出,風(fēng)雨坎坷也不能退步。

          2016年3月21日,育知同創(chuàng)Native、Hybrid、React Native混合式開發(fā)培訓(xùn)首期iOS精英班震撼開講!陽光、活潑、正能量,是iOS精英班同學(xué)們的面貌。育知同創(chuàng),將成為他們的夢工廠,接下來的四個月,他們將攜手共進(jìn),全力以赴!

          育知同創(chuàng)首期iOS精英班開班典禮

          育知同創(chuàng),做別人做不到的高品質(zhì)教育

          開班典禮伊始,活潑大方的職業(yè)規(guī)劃盧老師,向同學(xué)們介紹了兩位大牛iOS講師,黎老師(Lucien)和郭老師(David)。

          首先是溫文爾雅的郭老師(David)向?qū)W員們?nèi)娴姆治隽四壳癷OS行業(yè)情況。在David老師的分析中,可以了解到,近幾年軟件開發(fā)行業(yè)一直處于快速的發(fā)展和演變過程中。據(jù)現(xiàn)有iOS系統(tǒng)手機(jī)所占市場份額,以及iOS在其他領(lǐng)域的可能性運用,iOS開發(fā)人才一直處于緊缺狀態(tài),目前企業(yè)高薪聘請依然難以找到足夠多的iOS軟件開發(fā)人才,在未來幾年,市場仍會出現(xiàn)供不應(yīng)求的趨勢。David老師還說,iOS的可替代性是非常小的,所以目前大家所擔(dān)心的人才飽和并不是真正意義上的飽和,是iOS軟件初級開發(fā)人才飽和。而育知同創(chuàng)培養(yǎng)的是中高級iOS開發(fā)人才,我們的師資、我們的教學(xué),足以做到別人做不到的高品質(zhì)教育、制定名師授課!同學(xué)們很認(rèn)同David老師的觀點,也對自己當(dāng)初的選擇充滿信心。

          郭老師(David)為大家分析市場前景

          全新課程體系,帶你體驗課程獨有魅力

          接著David老師的行業(yè)分析后,為了讓同學(xué)們對自己所學(xué)的課程有更加清晰透徹的了解,黎老師(Lucien)憑借自身豐富的經(jīng)歷,用其獨到的見解為學(xué)員詳細(xì)、生動的闡述了接下來學(xué)習(xí)的iOS課程體系。Lucien老師是中國React Native視頻公開課第一人,國內(nèi)Native+Hybrid+React Native課程體系開拓者,混合式+跨平臺研發(fā)引領(lǐng)者,國內(nèi)首批Swift項目發(fā)起人。從事過多年JAVA、Linux、C++、Objective-C、Swift、HTML5相關(guān)產(chǎn)品研發(fā)。因授課經(jīng)驗豐富,實戰(zhàn)性強(qiáng),課堂氣氛活躍,因此曾受邀錄制過日本東京電視臺財經(jīng)一小時節(jié)目。技術(shù)能力強(qiáng),被學(xué)生譽(yù)為“Bug終結(jié)者”。所以對于iOS課程體系的講解,Lucien老師是及其自信的,也因為他強(qiáng)大的知識儲備讓在座的學(xué)員都大為感嘆。

          Lucien老師強(qiáng)調(diào),育知同創(chuàng)的iOS課程體系,專注于混合式(OC+Swift+HTML5)+跨平臺(React Native)研發(fā)培訓(xùn)課程,分別用OC 、Swift、React Native實現(xiàn)不同項目。這樣的課程不僅可以讓學(xué)員感受不同語言的優(yōu)勢,而且可以體驗React Native研發(fā)跨平臺的魅力。Lucien老師的講解既讓學(xué)員對iOS有了更深的了解,也讓學(xué)員對今后所學(xué)內(nèi)容有了更大的興趣。

          黎老師(Lucien)講解課程體系

          高精尖培養(yǎng)策略,不一樣的匠心品質(zhì)

          針對大家最關(guān)心的就業(yè)問題,職業(yè)規(guī)劃盧老師也為大家進(jìn)行了詳細(xì)的講解。通過首期iOS精英班可以看出,首先育知同創(chuàng)注重高品質(zhì)教學(xué),嚴(yán)格控制班級人數(shù),指定名師授課。其次育知同創(chuàng)擁有企業(yè)合作精英團(tuán)隊,每位職業(yè)規(guī)劃老師都具有豐富的企業(yè)資源和職業(yè)塑造能力,嚴(yán)格的管理制度,第一天入學(xué)即施行企業(yè)打卡形式簽到,定期為學(xué)員講授職業(yè)素養(yǎng)課程,舉辦技術(shù)講座等。最后育知同創(chuàng)擁有頂尖教學(xué)設(shè)備,蘋果MacBook Pro(MD318CH/A)筆記本電腦,15.4英寸屏幕,英特爾酷睿i7處理器,8GB內(nèi)存容量;500GB硬盤容量;獨立顯卡。育知同創(chuàng)采取的是高精尖培養(yǎng)策略,因此育知同創(chuàng)能培養(yǎng)出企業(yè)真正需要的互聯(lián)網(wǎng)高端人才,就業(yè)問題自然也就迎刃而解。

          育知同創(chuàng)iOS學(xué)習(xí)設(shè)備蘋果MacBook Pro

          接下來的四個月,是同學(xué)們將目標(biāo)變?yōu)閷嵺`,讓夢想照亮現(xiàn)實的四個月。

          既然選擇了遠(yuǎn)方,便只顧風(fēng)雨兼程。

          既然目標(biāo)是地平線,留給世界的只能是背影。

          四個月后的你們,一定會感謝現(xiàn)在努力的自己!

          北方網(wǎng)教育頻道 新聞糾錯、投訴及爆料熱線:022-23601753

          、公開課網(wǎng)站:

          網(wǎng)易云課堂

          網(wǎng)易公開課

          多貝網(wǎng)絡(luò)公開課

          傳課網(wǎng)

          騰訊課堂

          騰訊微講堂

          學(xué)堂在線

          中國大學(xué)MOOC

          優(yōu)酷教育頻道

          愛課程

          2、外語學(xué)習(xí)網(wǎng)站:

          多語言學(xué)習(xí)網(wǎng)站

          滬江英語網(wǎng) 最具人氣的英語學(xué)習(xí)交流互動平臺。

          譯言網(wǎng)

          看電影學(xué)英語(一款英語學(xué)習(xí)軟件)

          朗播網(wǎng) 一個主推“在線練習(xí)”的英語學(xué)習(xí)平臺。

          100教育 雅思、托福、四六級

          七彩英語 英語原版電子書下載。

          91外教網(wǎng)

          可可英語

          VOA 英語 VOA 在線收聽。

          普特英語聽力網(wǎng)

          有道學(xué)堂

          海詞在線詞典翻譯 最專業(yè)的網(wǎng)絡(luò)詞典。

          易改網(wǎng) 一款英語寫作輔助軟件。

          拓詞

          扇貝網(wǎng)背單詞 科學(xué)有效的詞匯訓(xùn)練和測試。

          別忘單詞網(wǎng)

          易唄網(wǎng)

          滬江CC課堂 英語、日語、漢語、法語、育兒

          幼教、中小學(xué)課堂、職稱等學(xué)習(xí)。

          世界各國語言學(xué)習(xí)網(wǎng)站

          Visuwords 視覺化單詞間的關(guān)系

          聲同小語種論壇

          51Talk無憂英語 網(wǎng)上平價英語培訓(xùn)專家,真人外交一對一在線英語培訓(xùn)。

          樸川英語 從一對一托福培訓(xùn)開始,個性化線上英語培訓(xùn)平臺。

          句酷批改網(wǎng) 基于語料庫和云計算基數(shù)的英語作文自動在線批改服務(wù)。

          新東方

          魔力學(xué)院 采用標(biāo)簽化做題思路,地圖化學(xué)習(xí)路徑的GMAT自適應(yīng)學(xué)習(xí)系統(tǒng)。

          3、考研網(wǎng)站:

          研究生招生信息網(wǎng)

          隸屬于教育部的以考研為主題的官方網(wǎng)站,是教育部唯一指定的研究生入學(xué)考試網(wǎng)上報名及調(diào)劑網(wǎng)站。

          主要提供研究生網(wǎng)上報名及調(diào)劑、專業(yè)目錄查詢、在線咨詢、院校信息、報考指南和考試輔導(dǎo)等多方面的服務(wù)和信息指導(dǎo)。

          網(wǎng)易考研

          中國教育在線考研

          考研加油站

          無憂考研

          考試吧考研

          滬江考研

          中國考研網(wǎng)

          免費考研網(wǎng)

          考研共濟(jì)網(wǎng)

          新東方考研

          考研論壇

          人大經(jīng)濟(jì)考研

          知識寶庫論壇

          白云黃鶴考研版

          考研網(wǎng)

          4、就業(yè)/實習(xí)網(wǎng)站:

          應(yīng)屆畢業(yè)生網(wǎng) 應(yīng)屆生畢業(yè)生求職、交流、互動的平臺。

          喬布簡歷 個人簡歷制作網(wǎng)站。

          過來人公開課 主要提供和職場相關(guān)的教程。

          極夢網(wǎng) 大學(xué)生實習(xí)、比賽、國際信息平臺。

          銳普PPT

          過來人求職網(wǎng)

          兼職貓

          簡歷酷 在線簡歷制作平臺。

          五百丁簡歷 提供模板下載、簡歷在線制作,網(wǎng)頁簡歷等服務(wù)。

          海投宣講會 集合了全國重點高校官方就業(yè)信息網(wǎng)的招聘信息

          簡歷模板

          師兄幫幫忙

          8點后 求職輔導(dǎo)及職業(yè)發(fā)展領(lǐng)域的互動版知乎

          牛客網(wǎng) 專業(yè)IT筆試面試備考平臺,最全求職題庫,全面提升IT編程能力

          5、國外學(xué)習(xí)網(wǎng)站:

          Coursera | Online Courses From Top Universities. Join for Free 免費大型公開在線課程項目

          Udemy Online Courses - Learn Anything, On Your Schedule 一個在線教和學(xué)的平臺

          edX 國外大規(guī)模開放在線課堂平臺

          Khan Academy 關(guān)于數(shù)學(xué)、歷史、金融、物理、化學(xué)、生物、天文等科目的內(nèi)容

          Open Yale Courses 耶魯大學(xué)公開課

          Free Online Course Materials MIT公開課

          The Open Education Consortium 美國的一個教育資源開放平臺,匯聚了全球范圍頂尖大學(xué)的各種教育資源

          Adobe KnowHow 國外開放教育平臺

          Online Programming Bootcamp for Serious Developers Ruby領(lǐng)域的網(wǎng)上視頻

          優(yōu)達(dá)學(xué)城 (Udacity) - 傳授硅谷的名企官方課程 一個提供免費大學(xué)教育國外網(wǎng)站

          Learn web development and design online free html/css/javasctipt/php/mysql學(xué)習(xí)

          thenewboston.org 提供計算機(jī)領(lǐng)域相關(guān)視頻

          Student reviews of online courses on Computer Science, Business, Design, Data Science, Humanities and more 國外視頻教程點評網(wǎng)站

          Learn to code by doing | Code School 在線網(wǎng)站制作教育平臺

          Video-Trainings von video2brain, Europas führendem Anbieter 在線視頻教育網(wǎng)

          Home - NovoEd 提供經(jīng)濟(jì)管理及創(chuàng)業(yè)類課程,由斯坦福大學(xué)教師發(fā)起,重視實踐環(huán)節(jié)

          MOOCs - start to enjoy learning now 德國IT在線課程OpenHPI

          No Excuse List 國外的一個學(xué)習(xí)網(wǎng)站導(dǎo)航

          Free Online Courses - FutureLearn 英國開放大學(xué)MOOC平臺

          Free Online Courses For Everyone 澳洲最具代表性的MOOC平臺

          AcademicEarth.org - Free Online Courses From Top Colleges 開放課程匯總

          Math lessons for lasting insight. 極為精妙的且直觀的概念解釋,涉及數(shù)學(xué)、經(jīng)濟(jì)及編程

          http://www.lynda.com/ 軟件使用技巧培訓(xùn)

          http://mathispower4u.yolasite.com/ 數(shù)學(xué)學(xué)習(xí)

          mathispower4u 改變一種思維方式

          Education’s First Video and Active Learning Platform | Echo360 Higher Education's First Active Learning Platform

          Smashing Magazine 面向?qū)I(yè)的web開發(fā)者、設(shè)計者

          Homepage - Grovo 幫助那些不熟悉互聯(lián)網(wǎng)的創(chuàng)業(yè)者和企業(yè)用戶快速地掌握使用互聯(lián)網(wǎng)技巧

          Open Culture - The Best Free Cultural and Educational Media on the Web. 國外一個收集名校公開課的網(wǎng)站

          CreativeLive: Free Live Online Classes 向創(chuàng)業(yè)者提供一些創(chuàng)業(yè)培訓(xùn)課程,內(nèi)容涵蓋攝影、商業(yè)、軟件、設(shè)計等

          Saylor Academy 國外一個線上學(xué)習(xí)資源分類精選站點

          https://www.craftsy.com/ 匯聚各行業(yè)頂尖人物精美錄制的課程

          The Best in Adaptive Learning Technology | Knewton 致力于為每一個人指定個性化學(xué)習(xí)方案

          6、程序員網(wǎng)站:

          CSDN首頁-全球最大中文IT社區(qū)

          51CTO.COM - 技術(shù)成就夢想 - 中國領(lǐng)先的IT技術(shù)網(wǎng)站

          開源中國 - 找到您想要的開源項目,分享和交流

          博客園 - 開發(fā)者的網(wǎng)上家園

          Stack Overflow - Where Developers Learn, Share, & Build Careers 國外知名IT界技術(shù)問答社區(qū)(翻墻訪問)

          SegmentFault 專業(yè)面向開發(fā)者的中文技術(shù)問答社區(qū)

          CodeCloud - Sharing the solutions to the problems about ios,java,linux,android,javascript,xcode,swift,python,html5 為碼農(nóng)提供計算機(jī)技術(shù)資源與資訊

          酷 殼 - CoolShell

          結(jié)構(gòu)之法 算法之道 - CSDN博客

          Linux網(wǎng)站導(dǎo)航,Linux網(wǎng)址大全,Linux排名,Linux屏幕抓圖

          程序源代碼,開發(fā),分享,采購 - CodeForge.cn

          dewen.io - 這個網(wǎng)站可出售。 - 最佳的dewen 來源和相關(guān)信息。編程社交問答

          程序員之家-瘋狂程序員的自我修養(yǎng)之地,高級程序員招聘場所

          最代碼-最全面,最專業(yè)的源代碼分享網(wǎng)站 一個很全面的代碼分享網(wǎng)站,近萬名用戶分享超過1萬份高質(zhì)量的代碼

          Ruby China 國內(nèi)最權(quán)威的Ruby社區(qū)

          Railscasts China 視頻教程,幫助中國Rails/Ruby社區(qū)中的程序員更快更方便的掌Rails/Ruby開發(fā)技術(shù)

          牛客網(wǎng)-專業(yè)IT筆試面試備考平臺,最全C++JAVA前端求職題庫,全面提升IT編程能力 知名互聯(lián)網(wǎng)公司歷年程序員筆試面試題

          實驗樓 - 在線做實驗,高效學(xué)編程 以實驗為核心的IT在線教育網(wǎng)站

          https://www.oxcoder.com/ 互聯(lián)網(wǎng)程序員在線筆試平臺,幫企業(yè)高效招聘程序猿,也方便程序員找工作

          7、Web開發(fā)網(wǎng)站:

          PHP100中文網(wǎng) - 中國第一檔PHP資源分享門戶

          PHP China-最棒的PHP中文社區(qū)

          ThinkPHP框架 | 中文最佳實踐PHP開源框架,專注WEB應(yīng)用快速開發(fā)8年!

          http://www.html5cn.org/ 中國最大的HTML5中文門戶

          前端網(wǎng)(QDFuns) - WEB前端開發(fā)工程師專業(yè)網(wǎng)站,一站式服務(wù)平臺!

          http://itercast.com/ Linux視頻學(xué)習(xí)及問答網(wǎng)

          客來樂互聯(lián)網(wǎng)收銀臺 - 實體商業(yè)精準(zhǔn)營銷平臺 Linux運維工程師學(xué)習(xí)

          CodeCombat: Learn to Code by Playing a Game 通過游戲?qū)W習(xí)javascript

          8、IT培訓(xùn)機(jī)構(gòu)網(wǎng)站:

          兄弟連官網(wǎng)-PHP培訓(xùn)_Linux培訓(xùn)_HTML5培訓(xùn)_UI設(shè)計培訓(xùn)_Java培訓(xùn)_Python培訓(xùn)_大數(shù)據(jù)培訓(xùn)

          Drupal, Node.js, Bootstrap, React 視頻教程 網(wǎng)頁設(shè)計學(xué)習(xí)

          http://www.iphonetrain.com/video/ IOS開發(fā)培訓(xùn)視頻教程

          尚硅谷_全套Java視頻,Android視頻,HTML5前端視頻,百萬谷粉推薦 免費JAVA視頻教程

          智能社www.zhinengshe.com | 專注前端 培訓(xùn)專家 最經(jīng)典的javascript視頻教程(專注前端培訓(xùn))

          iOS視頻教程,Android視頻教程,OC語言視頻教程,C語言視頻教程,Java視頻教程 - 千鋒教育 IOS/Android開發(fā)視頻教程

          云知夢-PHP培訓(xùn)_太原PHP培訓(xùn)_山西PHP培訓(xùn)_Linux培訓(xùn)_HTML5培訓(xùn)_小程序培訓(xùn)_微信培訓(xùn)_APP培訓(xùn)

          訓(xùn)練計劃 (冷啟動)

          年來,前端技術(shù)日新月異,前端已經(jīng)不僅僅是網(wǎng)頁,更多的開始由狹義向廣義發(fā)展。

          先后涌現(xiàn)出了具備后端能力的node,具備移動開發(fā)能力的react native,具備游戲渲染能力的cocos2d-js,以及iOS上的熱修復(fù)技術(shù)JSPatch等等新技術(shù)。

          咋一看,幾乎各個端都被JavaScript攻陷,大有一統(tǒng)江湖之勢。

          究竟,JavaScript如何做到上天入地?zé)o所不能?JavaScript真的能一統(tǒng)江湖嗎?

          亂世出英雄:JavaScript的誕生故事要從JavaScript的由來說起。

          高能瞎扯淡版,正經(jīng)臉的同學(xué)可以忽略

          有人的地方就有江湖,有江湖的地方就有紛爭。

          故事要從當(dāng)年的瀏覽器之戰(zhàn)說起。

          時間回到1994年,

          (→ 那時候我還是個寶寶~ #天真臉#)

          景兄弟橫空出世,并自帶神器網(wǎng)景導(dǎo)航,戰(zhàn)斗力爆表,勢如劈竹,瞬時間威震天下。

          一出世就武裝到牙齒,武力值這么高還自帶兵器,這個科學(xué)嗎?

          港真,我也覺得不科學(xué),也許跟熊孩子哪吒、女漢子雅典娜是一個品種吧?

          這一切北方的老前輩微軟大濕,都看在眼里,不甘天下盡歸景兄弟這個初出茅廬的毛孩子,大濕積淀多年,潛心修煉一年,終于帶著大殺器IE 1.0出關(guān)了,誓于景兄弟爭個高低。

          自此景兄弟的網(wǎng)景導(dǎo)航 VS 微軟大濕的IE 的軍備戰(zhàn)爭開始。

          景兄弟仔細(xì)掂量,微軟大濕財大氣粗,內(nèi)功深厚,臣妾實在是辦不到啊啊啊啊啊啊。

          景兄弟緊急召集門人商議對策,有一門人曰:”以我們微薄之力硬磕,是萬萬使不得的。如今我們,一是宜施行合縱之策,抱大腿,組成聯(lián)盟!二是避其鋒芒,出奇招致勝。“

          于是景兄弟依照此策略,一方面找到了當(dāng)時德高為重的另一位前輩SUN,組成了開發(fā)者聯(lián)盟。

          (微軟大濕:握草,聯(lián)盟都粗來了,那我是不是得搞個部落?)

          另一方面,景兄弟找到了鍛造大師布蘭登,請布大師幫忙升級兵器網(wǎng)景導(dǎo)航,大師就是大師,不費吹灰之力就完成了強(qiáng)化升級,然而布大師突發(fā)奇想,本來這是近距離攻擊兵器,要是有多一個遠(yuǎn)距離攻擊的能力那豈不是更好?Just do it. 想罷大師就加了一個遠(yuǎn)距離攻擊的feature。于是有了自帶遠(yuǎn)距離攻擊能力的網(wǎng)景導(dǎo)航2.0。景兄弟一看這么流弊心里甚是歡喜,不過遠(yuǎn)距離攻擊的技能叫做LiveScript,感覺不是特別Fashion。特然想到這不是跟SUN前輩聯(lián)盟嘛,SUN家的Java正是獨霸武林之時。不如把名字改成跟Java有關(guān),蹭一把東風(fēng),蹭點光環(huán)。一拍腦袋,JavaScript!!!眾門人一聽:”好好好,JavaScript 流弊炫酷吊炸天!“

          果然第一節(jié)下半場,景兄弟攜強(qiáng)化過的網(wǎng)景導(dǎo)航2.0 戰(zhàn)個痛快,那是杠杠的!人家一問,你咋還能遠(yuǎn)程攻擊,你這個遠(yuǎn)程攻擊用的是啥?答曰:JavaScript。“JavaScript,一定是跟SUN家Java是一個系列產(chǎn)品,一定很流弊!”#光環(huán)加成,各種膜拜臉#

          微軟大濕虧了一場,痛定思痛,也要搞遠(yuǎn)程攻擊功能,果然不久,就祭出了同樣帶有遠(yuǎn)程攻擊能力的IE 3.0,鑒于景兄弟的遠(yuǎn)程攻擊叫做JavaScript,J開頭的感覺應(yīng)該比較流弊,所以微軟大濕的叫做JScript。

          然后戰(zhàn)爭就從地面貼身肉搏戰(zhàn),開始逐步升級到了遠(yuǎn)距離核戰(zhàn)爭。

          正所謂,城門失火,殃及池魚。這么打下去苦逼的是搬磚的頁面仔,就是我這種,到處都是雷區(qū),無處下腳。

          最后到了1997年,“聯(lián)合國安理會秘書長”艾瑪(ECMA)出來調(diào)停,多方簽署了“核不擴(kuò)散條約”,約束各種遠(yuǎn)程攻擊武器的使用,這才走上了正軌。

          1995年SUN開發(fā)了Java技術(shù),這是第一個通用軟件平臺。Java擁有跨平臺、面向?qū)ο蟆⒎盒途幊痰奶匦裕瑥V泛應(yīng)用于企業(yè)級Web應(yīng)用開發(fā)和移動應(yīng)用開發(fā)。Java也伴隨著互聯(lián)網(wǎng)的迅猛發(fā)展而發(fā)展,逐漸成為重要的網(wǎng)絡(luò)編程語言。名噪一時。

          1994年Netscape公司成立,并推出了自己的瀏覽器的免費版本 Netscape Navigator,很快就占有了瀏覽器市場。到了 1995 年,微軟公司開始加入,并很快發(fā)布了自己的 Internet Explorer 1.0。

          1995年,當(dāng)時在Netscape就職的Brendan Eich(布蘭登·艾克),正為Netscape Navigator 2.0瀏覽器開發(fā)的一門名為LiveScript的腳本語言,后來Netscape與Sun Microsystems組成的開發(fā)聯(lián)盟,為了讓這門語言搭上Java這個編程語言“熱詞”,將其臨時改名為“JavaScript”,日后這成為大眾對這門語言有諸多誤解的原因之一。

          JavaScript最初受Java啟發(fā)而開始設(shè)計的,目的之一就是“看上去像Java”,因此語法上有類似之處,一些名稱和命名規(guī)范也借自Java。但JavaScript的主要設(shè)計原則源自Self和Scheme。JavaScript與Java名稱上的近似,是當(dāng)時Netscape為了營銷考慮與SUN達(dá)成協(xié)議的結(jié)果。

          ==> 所以,JavaScript和Java其實沒有半毛錢關(guān)系。

          JavaScript推出后在瀏覽器上大獲成功,微軟在不久后就為Internet Explorer 3.0瀏覽器推出了JScript,以與處于市場領(lǐng)導(dǎo)地位的Netscape產(chǎn)品同臺競爭。JScript也是一種JavaScript實現(xiàn),這兩個

          JavaScript語言版本在瀏覽器端共存意味著語言標(biāo)準(zhǔn)化的缺失,對這門語言進(jìn)行標(biāo)準(zhǔn)化被提上了日程,在1997年,由Netscape、SUN、微軟、寶藍(lán)等公司組織及個人組成的技術(shù)委員會在ECMA(歐洲計算機(jī)制造商協(xié)會)確定定義了一種名叫ECMAScript的新腳本語言標(biāo)準(zhǔn),規(guī)范名為ECMA-262。JavaScript成為了ECMAScript的實現(xiàn)之一。ECMA-262 第五版,即是ES5。

          ==> ECMA-262,包括ES5, ES6等是一個標(biāo)準(zhǔn),JavaScript是ECMAScript的一個實現(xiàn)。

          完整的JavaScript實現(xiàn)應(yīng)該包含三個部分:

          在網(wǎng)景導(dǎo)航2.0和IE 3.0出現(xiàn)之后的幾年間,網(wǎng)景和微軟公司不停的發(fā)布新版本的瀏覽器,支持更多的新功能。自此拉開了瀏覽器之戰(zhàn)的序幕。這場瀏覽器之戰(zhàn)到現(xiàn)在還在繼續(xù),以下一張圖看清楚過程。

          從瀏覽器之戰(zhàn)可以看出,各家瀏覽器比拼的大致兩個方面視覺體驗(渲染排版)和速度(腳本運行)。

          ==> 所以一個完整的瀏覽器組成,至少包含兩個部分:

          補(bǔ)充一個市面常見瀏覽器的內(nèi)核和JavaScript引擎搭配:

          其他JavaScript引擎,Rhino,由Mozilla基金會管理,開放源代碼,完全以Java編寫,可以看做SpiderMonkey的Java版。

          注意:webkit不單單只是一個排版引擎,webkit = 排版引擎 + JavaScript引擎。

          ==> 所以,JavaScript是動態(tài)語言,它的運行都是基于JavaScript引擎,引擎大都是由靜態(tài)語言實現(xiàn)C++、Java、and so on。JavaScript的能力也是由引擎賦予。不管是瀏覽器環(huán)境中是window,亦或是node環(huán)境中的process,均是由引擎提供。

          (番外:Mozilla的人不知道為啥特別喜歡猴子,經(jīng)常以猴子命名技術(shù),所以看到帶Monkey的,十有八九估計是他們搞的。)

          諾曼底登陸:JavaScript Binding/Bridge 橋接技術(shù)

          在瀏覽器環(huán)境中,DOM、BOM、window對象、setTimeout/setInterval,alert,console等方法均不是JavaScript自身具備的能力,而是瀏覽器native實現(xiàn),然后通過JavaScript引擎注入到JS運行的全局上下文中,供JS使用。

          鑒別方式,在調(diào)試器console中打出來,帶有[native code]的即是:

          講道理:

          1. JavaScript運行 → 依賴于JavaScript引擎 ← 瀏覽器集成了JavaScript引擎,同時通過JavaScript引擎注入native代碼工JS腳本使用

          2. 發(fā)散一下思維,只要有JavaScript引擎,就能運行JS腳本,不管有沒有瀏覽器!只是缺少瀏覽器提供的alert,window等方法。

          3. 既然瀏覽器可以往JavaScript引擎中注入代碼,賦予JS腳本在網(wǎng)頁中特殊的能力,同理我們可以自己集成JavaScript引擎,自己定義自己的方法往JavaScript引擎中注入,賦予JS更多更強(qiáng)的自定義能力!

            注入的關(guān)鍵是:值類型相互對應(yīng),Obj映射class的一個實例,function映射一個句柄或者引用

          JavaScript數(shù)值型中的坑

          JavaScript內(nèi)部,所有數(shù)字都是以64位浮點數(shù)形式儲存,即使整數(shù)也是如此

          這就是說,在JavaScript語言的底層,根本沒有整數(shù),所有數(shù)字都是小數(shù)(64位浮點數(shù))。容易造成混淆的是,某些運算只有整數(shù)才能完成,此時JavaScript會自動把64位浮點數(shù),轉(zhuǎn)成32位整數(shù),然后再進(jìn)行運算。由于浮點數(shù)不是精確的值,所以涉及小數(shù)的比較和運算要特別小心。盡量避免使用JavaScript做精準(zhǔn)計算和密集計算。

          根據(jù)國際標(biāo)準(zhǔn)IEEE 754,JavaScript浮點數(shù)的64個二進(jìn)制位,從最左邊開始,是這樣組成的。

          • 第1位:符號位,0表示正數(shù),1表示負(fù)數(shù)

          • 第2位到第12位:儲存指數(shù)部分

          • 第13位到第64位:儲存小數(shù)部分(即有效數(shù)字)

            符號位決定了一個數(shù)的正負(fù),指數(shù)部分決定了數(shù)值的大小,小數(shù)部分決定了數(shù)值的精度。

            IEEE 754規(guī)定,有效數(shù)字第一位默認(rèn)總是1,不保存在64位浮點數(shù)之中。也就是說,有效數(shù)字總是1.xx…xx的形式,其中xx..xx的部分保存在64位浮點數(shù)之中,最長可能為52位。因此,JavaScript提供的有效數(shù)字最長為53個二進(jìn)制位(64位浮點的后52位+有效數(shù)字第一位的1)。

          內(nèi)部表現(xiàn)公式:(-1)^符號位 1.xx…xx 2^指數(shù)位

          精度最多只能到53個二進(jìn)制位,這意味著,絕對值小于2的53次方的整數(shù),即-(253-1)到253-1,都可以精確表示。

          而大部分的后端語言,C++、Java、Python等的long型都是可以支持到64位,因此long型數(shù)據(jù)從后端語言傳給JavaScript會發(fā)生低位截斷。遇到這種情況一般使用String處理,如需要在JavaScript中做long型計算,需要自行實現(xiàn)計算器。

          有了自行往JavaScript引擎中注入的想法,接下來就是分析可行性。

          大部分是JavaScript引擎是使用C++編寫,如果自己的程序使用的是C++可以很方便的進(jìn)行注入,如果是OC,可以使用OC和C++混編的形式。

          其他語言怎么破?

          要在一門靜態(tài)語言上與動態(tài)語言JavaScript相互調(diào)用,最便捷的方式是找到一個這門語言實現(xiàn)的JavaScript引擎(開源),直接進(jìn)行集成,注入。如果沒有,則需要使用多一層橋接,把這門語言的接口暴露給C++,再由C++實現(xiàn)的JavaScript引擎將接口注入供JavaScript使用。

          服務(wù)端集成思路&實踐:

          nodeJS中的橋接

          我們都知道nodeJS,但是nodeJS的運行依賴于Google的V8 引擎,V8是C++實現(xiàn),底層使用C++實現(xiàn)底層功能,比如網(wǎng)絡(luò),數(shù)據(jù)庫IO,對外暴露一個構(gòu)造器接口注入到上下文中,注意此處暴露的只是一個構(gòu)造器接口而不是一個創(chuàng)建完的實例。然后實現(xiàn)了一個require的hook函數(shù)。當(dāng)使用require加載一個JS模塊時,跟網(wǎng)頁中使用AMD 的require并無異樣,當(dāng)使用require加載系統(tǒng)庫,既是C++的模塊時,會調(diào)用暴露出來的構(gòu)造器接口,得到一個實例對象。不管是裝載JS模塊還是裝載C++模塊,得到的都可以看做是一個Module Object,node會將裝載完的模塊緩存到binding_cache中,下次在別處的代碼中使用require裝載模塊時,就會先去binding_cache中查找,如果找到了則返回該module object,如果沒找到再執(zhí)行上面的裝載流程。

          這就是node的基本原理:C++封裝底層操作,通過V8注入,使得JS腳本有網(wǎng)絡(luò)和IO能力

          基于Spring的橋接

          以上說到的幾個都是C++層面的應(yīng)用,那么經(jīng)典的Java怎么玩?是不是Java就必須是靜態(tài)語言的玩法,沒有辦法像C++之類的,可以使用JS的動態(tài)特性?

          當(dāng)然不是。這個時候,我們需要說起前面介紹過的一個JS引擎 Rhino,Rhino是完全由Java編寫,可想而知,Rhino幾乎就是為Java應(yīng)用而生的。

          用法是這樣:

          1. 首先在我們的Java應(yīng)用中集成Rhino;

          2. 所有的IO操作,網(wǎng)絡(luò)操作等,都封裝成service,并提供增刪改查,setter && getter等多種方法

          3. 通過spring,把這些service bean注入到Rhino中;

          4. 把業(yè)務(wù)邏輯寫到JS代碼中,JS代碼調(diào)用多個已注入的Java service處理業(yè)務(wù)邏輯,拼裝數(shù)據(jù)返回!

          好處:修改業(yè)務(wù)邏輯不需要修改Java代碼,也就是不需要重新編譯和部署,只需要刷新下跑在Rhino中的JS代碼即可。以往Java應(yīng)用的一個痛點是部署,需要重新編譯,打包,部署重啟服務(wù)器,現(xiàn)在以這種形式開發(fā),可以達(dá)到服務(wù)端的熱更新和熱部署。既可以享有Java服務(wù)的穩(wěn)定性和可靠性,又可以享有JS的靈活性。

          這種技術(shù)和用法在差不多十年前就有過,前EMC的工程師基于EMC著名的商業(yè)產(chǎn)品Documentum,設(shè)計了一套Java開源的中小企業(yè)CMS系統(tǒng)Alfresco,在該系統(tǒng)中實現(xiàn)了這種技術(shù),這種技術(shù)基于spring,叫做spring-surf,做了一個膠水層。可以看做小十年前的node吧。

          Demo,使用spring-surf框架的系統(tǒng)中一個webscript模塊

          1. categorynode.get.xml定義URL攔截器和權(quán)限控制;

          2. .get指明是處理GET請求,RESTful;

          3. 在categorynode.get.js中調(diào)用已注入的Java Bean處理業(yè)務(wù)邏輯;

          4. 若為網(wǎng)頁請求返回.html.ftl,若為Ajax,返回.json.ftl;

          (此處配套使用的是FreeMarker模板引擎)

          ==> categorynode.get.desc.xml

          ==> categorynode.get.js

          ==> categorynode.get.html.ftl

          ==> categorynode.get.json.ftl

          移動端集成思路&實踐:

          React Native中的橋接

          React Native目前也是異常火爆,RN程序的運行依賴于Facebook的RN框架。在iOS、Android的模擬器或是真機(jī)上,React Native使用的是JavaScriptCore引擎,也就是Safari所使用的JavaScript引擎。但是在iOS上JavaScriptCore并沒有使用即時編譯技術(shù)(JIT),因為在iOS中應(yīng)用無權(quán)擁有可寫可執(zhí)行的內(nèi)存頁(因而無法動態(tài)生成代碼),在安卓上,理論上是可以使用的。JavaScriptCore引擎也是使用C++編寫,在iOS和安卓中,JavaScriptCore都做了一層封裝,可以無須關(guān)心引擎和系統(tǒng)橋接的那一層。iOS/Android系統(tǒng)通過JavaScriptCore引擎將定制好的各種原生組件注入,如:listview,text等。

          Cocos2d-JS中的橋接

          cocos2dx是游戲開發(fā)中非常常用的游戲渲染引擎,有一系列的產(chǎn)品,如:cocos2dx(C++),cocos2d-lua(lua), cocos2d-js(JavaScript)等多個產(chǎn)品。其中最新退出的是cocos2dx的JS版本的cocos2d-js,編寫游戲渲染特效代碼相比于C++和lua非常方便。對于做需要經(jīng)常更新的渲染場景,C++是靜態(tài)語言,每次修改都需要重新編譯才能運行,顯然是不合適的。自然也就想到了腳本語言,lua和js,兩者有些類似,都是動態(tài)語言,只需要集成一個運行引擎,提供一個運行的容器即可運行,同時通過引擎注入底層方法供腳本調(diào)用即可。lua好處是精簡,語法精簡,引擎頁很小很精簡,所以不可避免的代碼量會比js多,同時學(xué)習(xí)成本比較高。js的好處是有ECMAScrtpt的核心,語法比較豐富,同時有支持一些高級屬性。在cocos2d-js中,cocos2dx(C++)集成了SpiderMonkey(C++)作為JS運行引擎,中間做了一個膠水層既是JS Binding,通過引擎注入了一個cc的全局對象,映射的是底層C++的一個單例C++實例。表面上寫的是JS代碼,實際上操作的是底層的C++。cocos2d-js是代碼可以運行在多種環(huán)境中,當(dāng)運行的網(wǎng)頁環(huán)境中時,使用的是cocos2d-html5引擎,底層操作的是canvas;當(dāng)運行在客戶端上時,使用的是cocos2dx引擎,底層操作的是C++,再由C++去操控openGL做繪制和渲染。提供相同的API,對開發(fā)者幾乎是透明無差異的,開發(fā)者只需要關(guān)注實現(xiàn)效果即可。達(dá)到一套代碼,多端運行(網(wǎng)頁端,客戶端)。

          JSPatch技術(shù)中的橋接

          JSPatch是目前比較流行的iOS上的熱修復(fù)技術(shù),JSPatch 能做到通過 JS 調(diào)用和改寫 OC 方法最根本的原因是 Objective-C 是動態(tài)語言,OC 上所有方法的調(diào)用/類的生成都通過 Objective-C Runtime 在運行時進(jìn)行,我們可以通過類名/方法名反射得到相應(yīng)的類和方法。JSPatch 的基本原理就是:JS 傳遞字符串給 OC,OC 通過 Runtime 接口調(diào)用和替換 OC 方法。

          關(guān)鍵技術(shù)之一是 JS 和 OC 之間的消息互傳。JSPatch里包含了,一個JS引擎JavaScriptCore(Safari,React Native用的同款)。用到了 JavaScriptCore 的接口,OC 端在啟動 JSPatch 引擎時會創(chuàng)建一個 JSContext 實例,JSContext 是 JS 代碼的執(zhí)行環(huán)境,可以給 JSContext 添加方法,JS 就可以直接調(diào)用這個方法。本質(zhì)上就是通過JavaScriptCore引擎注入,暴露OC的方法供JS調(diào)用來實現(xiàn)動態(tài)修改OC的反射。

          Demo,iOS熱更新,熱修復(fù):

          1. 集成JavaScriptCore引擎;

          2. 通過引擎,橋接JS和OC;

          3. 通過JS修改OC反射。

          詳細(xì)的JSPatch技術(shù)介紹請移步:https://github.com/bang590/JSPatch/wiki

          關(guān)于JavaScript引擎:

          在iOS 或 android 上能夠運行的JavaScript 引擎有4個:JavaScriptCore,SpiderMonkey,V8,Rhino。下面這個表格展示各個引擎在iOS 和 Android 的兼容性。

          因為iOS平臺不支持JIT即時編譯,而V8只有JIT模式,所以V8無法在iOS平臺使用(越獄設(shè)備除外,想體驗iOS JIT的同學(xué)可以自行越獄)。

          所以,目前可以做到橫跨iOS和Android雙平臺的JS引擎,只有兩款,即是SpiderMonkey和JavaScriptCore。

          JavaScript引擎會受很多東西影響,比如交叉編譯器的版本、引擎的版本和操作系統(tǒng)的種類等。

          至于如何選擇,可以參考:《Part I: How to Choose a JavaScript Engine for iOS and Android Development》

          至此,JavaScript從立足于前端,到征戰(zhàn)全端的逆襲之路,可以總結(jié)為“攜引擎以令天下”。

          不足之處,還請各位看官輕拍~

          參考文章:

          bang590/JSPatch中問參考文檔

          Cocos2d-JS | Cocos2d-x官方參考文檔

          Alfresco官方參考文檔

          《Browser Wars: The End or Just the Beginning?》

          《Part I: How to Choose a JavaScript Engine for iOS and Android Development》

          《React Native 從入門到源碼》


          主站蜘蛛池模板: 亚洲国产精品一区二区三区久久| 亚洲美女视频一区| 亚洲综合无码一区二区| 欧美激情一区二区三区成人| 一区二区三区电影在线观看| 免费高清在线影片一区| 无码日韩精品一区二区免费暖暖| 日本一区二区三区在线网| 亚洲欧美日韩一区二区三区| 久久人做人爽一区二区三区| 少妇无码一区二区三区免费| 亚洲日韩精品一区二区三区无码| 在线视频一区二区三区三区不卡| 一区二区中文字幕在线观看| 无码精品蜜桃一区二区三区WW| 国产伦精品一区二区三区免.费 | 无码人妻少妇色欲AV一区二区| 日韩少妇无码一区二区三区| 国产成人免费一区二区三区| 精品亚洲福利一区二区| 亚洲日韩国产欧美一区二区三区| 精品国产鲁一鲁一区二区| 精品国产一区二区三区久久久狼| 亚洲无圣光一区二区| 中文字幕一区在线观看视频| 伊人色综合视频一区二区三区| 少妇一夜三次一区二区| 国产乱人伦精品一区二区在线观看| 亚洲av乱码中文一区二区三区| 中文精品一区二区三区四区| 无码少妇丰满熟妇一区二区| 亚洲国产欧美国产综合一区 | 免费观看一区二区三区| 91久久精一区二区三区大全| 国精产品一区二区三区糖心| 一区二区三区在线免费看| 2020天堂中文字幕一区在线观| 国产精品香蕉一区二区三区 | 中文字幕一区二区三区5566| 少妇一晚三次一区二区三区| 激情综合丝袜美女一区二区|