① 像美團外賣這樣的APP用一種開發語言,能開發得出來嗎
像美團外賣這樣的APP用一種開發語言,能開發得出來嗎?答案是不能。
美團發展到現在可以說已經是一個【巨無霸】了,裡面集成了很多很多功能,除了核心的外賣,還有 旅遊 、 娛樂 、購物、出行,金融等等業務線,那麼這么多復雜的業務根本不可能用同一種開發語言實現。
那麼美團都用到哪些開發語言和技術了呢?下面就根據我的理解詳細說一下。
前端是把產品的核心服務交給用戶的呈現者,它的表述方式、展示形式以及交互邏輯都跟用戶息息相關,都影響著用戶使用產品的體驗,也就是說直接影響產品的用戶留存。
前端開發主要分為三大類型:Andriod、IOS和PC(H5) ,Android開發語言是Kotlin和Java,IOS開發語言是Object-c和Swift,PC(H5)開發語言就比較雜了,有JS、CSS、HTML,還有很多第三方的前端框架,比如Angular.js、vue.js、Bootstrap、JQuery等等。
關於後端的功能,這一點可以說是眾說紛紜,主要需要考慮的是如何實現功能、數據的交互流程和存取、平台的穩定性與性能等。
那麼後端都用到哪些開發語言和技術呢?
根據後端技術選型的標准,後端可選的開發語言和技術是非常多的。
比如Java體系的話,可以選用SpringMVC、Spring cloud、Hibernate,Mybatis、Mysql、Redis、Memcache、zookeeper、Kafka......;
比如Python體系的話,可以選用Django、Flask、Tarnado、Web2py等,中間件都是通用的,Redis,MQ、MySQL、Kafka等都可以用在python體系中;
當然還有PHP、C、Perl等開發語言。
綜上所述,美團這個巨無霸公司,隨著業務線的擴展用到的技術肯定會越來越多,而且越來越復雜,技術快速變革的時代,適者生存的競爭性也會越來越激烈。
俗話說:羅馬不是一日建成的,任何事都不可能一蹴而就,包含技術。在以後的發展中美團也會逐步更新自己的技術和開發語言的。
至少三種語言。後端一種語言(比如Java丶Go丶Python丶PHP等),後端語言及生態比較成熟。下面重點聊前端App開發。
前台兩種語言(Android和iOS是不同的開發環境。比如Android用Java或者Kotlin,iOS採用Object C++或Swift),稱之為Native開發。
當然創業公司可以用一種前端語言寫App前端,這樣就不需要Android和蘋果分兩種語言寫,寫一次代碼可以編譯成Android和iOS的App,現在通行的方案有Vue之類的DOM渲染模式,以及ReactNative方案(RN)。性能上RN優於DOM渲染但低於用Native開發的App。所以美團這種公司,一定是Native方式寫App,但RN是初創項目不錯的選擇。
與RN競爭的還有一種新貴flutter,是google推出來的,但設計原理與RN不同,性能方面優於RN,只是目前生態不夠健全,國內有閑魚app是採用此技術。未來可能會佔一席之地。
最後,其實App開發已經是強努之末,我覺得主流應該是朝PWA和小程序方向發展。
你好,開發譬如美團這種APP,用一種語言是實現不了的,一個APP有安卓和蘋果兩個操作系統,開發能在安卓iOS端應用的APP主流的開發語言和技術是很多的,如後台有JAVA、C++、PHP、Python等多種開發語言,前端有kotlin、HTML、css、jquery、ajax、bootstrap、angular.js、react、vue.js、node.js、swift、object-c等多種語言和框架。
一個APP的開發是需要前端技術和後台技術共同配合完成,這樣的APP不論是功能還是性能都給用戶很好的體驗,單一開發語言畢竟技術支持有限,所以即使能開發出來,APP的用戶體驗也是不理想的。
一般APP有這幾種開發組合模式:1、原生安卓iOS開發,前端:JAVA、kotlin、swift、object-c後台:JAVA、PHP、C++等後台技術,這種模式開發周期長,成本高,性能好;2、混合APP開發即hybrid app,前端以網頁技術為主,穿插原生開發功能,兼具原生APP和web app的優點,如淘寶、微信等應用都是走的這個技術;3、web app,前端純網頁技術,後台為主流開發語言,這種模式開發速度快,成本低,界面體驗可能弱一些。
可見開發一款APP大多數都是多種語言配合完成,謝謝閱讀。
看完之前的評論,依然好奇為什麼一個語言不能完全勝任。
前端跨平台的方案有react native,cordova,flutter等,如果需要兼容開發小程序,h5頁面,可以採用taro來開發,一套代碼,所有平台通吃。
後端的方案有服務端運行時nodejs,大數據背景下運用而生的資料庫mobgodb,緩存解決方案redis,搜索工具elasticsearch,負載均衡ngix,基本上是需要什麼就有什麼
所以總結下來,一句話,一種語言可以實現類似美團這樣的app和小程序。為什麼美團使用的語言那麼多,一大原因估計是美團app開發的早,當時前端技術不成熟,工具沒現在這么多。
使用混合開發與C++ 進行跨平台開發,有好有壞。
C++ 進行跨平台開發
編寫一次,隨處運行。早在 2013 年,Dropbox 就採用上述策略進行移動開發,這背後的想法很簡單:用 C++ 編寫一次代碼,而不是用 Java 和 Objective-C 編寫兩次。那時,整個移動工程團隊相對還比較小,但需要支持快速增長的移動路線圖。因此,公司希望找到一種方法,使這個小團隊可以快速交付大量 Android 和 iOS 代碼。
如今,Dropbox 完全放棄了這個策略,轉而使用各個平台的原生語言(主要是 Swift 和 Kotlin ,這兩種語言在剛開始制定移動策略時還不存在)。
Hybrid App混合開發
Hybrid App主要以JS+Native兩者相互調用為主,從開發層面實現「一次開發,多處運行」的機制,成為真正適合跨平台的開發。Hybrid App兼具了Native App良好用戶體驗的優勢,也兼具了Web App使用HTML5跨平台開發低成本的優勢。
目前已經有眾多Hybrid App開發成功應用,比如美團、愛奇藝、支付寶等知名移動應用,都是採用Hybrid App開發模式。
移動應用開發的方式,目前主要有三種:
幾種模似都可以開發出應用,小應用無所謂,但是大流量應用,對圖形要求高的如 游戲 等原生開發的效果還是最好
支付寶打開很慢,就是因為採用混合開發,使用人多了不如原生開發
不行的哦。任何你看到的應用和網頁,都需要多個語言開發的,大的分比如前端和後端,用的語言都是不一樣的
② 美團筆試 編程題可以使用自己的ide嗎
1、不清楚。為了展示自己的真實力汪此。我建議你直接使用文本粗陵槐編輯器。
2、如果有不懂的面試題。可以發岩友上來我們一起探討探討。
③ 面試美團點評是怎樣的一種體驗
美團面試:主要就是分為筆試和面試。美團的筆試題目,演算法程序題居多,最後有安卓的、前端什麼的題。美團的題目還是不難的,特別看到幾道題目在lintcode上刷到過一模一樣的。前兩面沒什麼壓力,面頌絕差試官基本是和顏悅色的,不會很嚴肅;但是闖到第三面的時候,能明顯感覺到差別,面試官基本面無表情,野皮要做好心理准備,面試過程中碰到什麼問題都不要消極處理,積極應對總有扭轉看法的一刻。
美團網:是2010年3月4日成立的團購網站。美團網有著「吃喝玩樂全都有」和「美團一次美一次」的服務宣傳宗旨。總部位於北京市宏搭朝陽區望京東路6號。
④ 打死我也想不到「美團」測試面試題這么難,當場給我嚇「die」了
不知道你們多長時間沒有參加過面試了,最近這段時間的面試,真的是一個比一個嚴格!
昨天參加了一線大廠的技術面,當場給我嚇die了,沒想到這么難!
如果你不信,你也來die die:
你說這面試官狠不狠!太狠了!
對於我們測試員而言,面試就是將自己所學的技術與面試官表達出來。以前上學准備找工作的時候,發現最先找到工作的不是技術最好的而是善於溝通活躍度高的人,而我聽的最多的抱怨是:為什麼我明明知道這個東西,面試的時候卻不知從何說起。
本文會從我的自身經歷出發談一談面試前如何做好充分准備,怎麼流暢地表達自己的技術,以及進入項目時如何從一開始的手足無措、盲目下手到後來的淡定從容。
這里也推薦一個群,裡面會不雀模定期地分享軟體測試資源,測試面試題以及測試行業資訊,朋友們可以在群中積極交流問題。私信我(交流群)
下面我將從以下幾個方面來分享一下面試前的准備。
1、 給自己定位 首先要給自己定位,自己現在是一個什麼階段,是初級崗,中級,高級,還是專家級。一般情況下剛參加工作一年左右是初級,兩年左右努力提升自己的話是中級,三到五年高級甚至專家級。前提是不停地鑽研。
2、知識的梳理
因為把自己定位為自動化測試工程師,俗話說:面試修航母,工作螺絲釘。面試考慮各個方面,對於測試來說,主要有以下幾個方面來准備:介面自動化測試、搭建測試框架、web自動化、APP自動化。當然知識梳理完畢之後,還要去閱讀一些面試經,看看最新各個廠商問的問題。其實以上這些東西准備完,基礎好的話,一個月左右,基礎不好的話至少要3個月吧。
俗話說不打無准備之仗,只有準備好了才能在面試過程中取得好的結果。
3、簡歷的准備
簡歷是一個敲門磚,HR每天會有很多簡歷收到。簡歷如何讓人眼前一亮,並且能一眼抓住關鍵信息:個人基本信息(姓名,電話,郵箱,畢業院校等),工作經歷,技能點,一些亮點(比如六級證書,獲獎等)。簡歷要簡潔,層次分明。寫完簡歷要在招聘網站上更新一下自己的簡歷。
4、 面試機會的各個渠道 這次面試一共通過了3種渠道,一是朋友內推,二是獵頭幫忙,三是通過boss或智聯投遞。
5、技能儲備
自動化/性能/安全(必須會編程)——中高級測試工程師
具備測試能力和代碼能力,提高測試效率和軟體質量。
下面是自動化測試的一個例子。
1)選擇一門編程語言學習:java、python、ruby等。
2)了解自動化測試,自動化測試工具,web/app/ interface /pc自動化基礎。
3)框架思路、項目實踐和流程。
在功能測試崗位工作幾年後,我會開始感到焦慮。
在工作中,我感受到了自己成長的局限。除了越來越熟悉的業務,工作也是一點一點的,其他方面都沒有長進。
想換工作,想漲工資,但是又覺得很失落,很無力,因為全身的價值都在這里。
想在工作過程中提升自己,朝著高薪自動化測試、性能測試、安全測試等方向邁進。
當然,自動化測試工具也可以自動化,但是有好有壞。
測試開發/性能、安全測試專家(必須能夠編程)——高級測試工程師
測試開發,具備測試能力和代碼能力,提高測試效率和軟體質量。開發和測試都可以。
需要很強的開發能力,深入代碼層面。一般不直接參與測試工作。
1.測試框架和測試工具的二次開發更好地滿足了公司產品的測試需求。
2.進行單元測試或協助開發和進行單元測試,從開發階段開始控制產品代碼質量。在後續迭代過程中快速挖掘問題。
3.開發測試工具和平台,提高測試效率,簡化各種測試,為測試團隊量化測試結果。比如性能測試平台、介面測試平台。
測試主管、經理和主管-職業發展和晉升階段
需要很強的測試和編程技能以及足夠的管理和溝通技能。如果你只有足夠的測試能力,就沒法hold住開發團隊。
對於這個問題,每個人都頃沒緩有每個人的看法。
覺得去大公司好的人認為,大公司資金較為雄厚,管理較為規范,對於應屆畢業生來說察春,大公司的工作經歷也會為以後的求職生涯鍍金。
覺得去小公司好的人認為,大公司的管理模式僵化,能夠學到的東西並不會很多,而小公司的管理模式靈活,晉升的機會也很多,能夠得到不少的鍛煉機會。
其實這個問題,我覺得並沒有固定的答案,每一個公司和崗位都有適合的人和不合適的人。
如果你有機會進入一家知名大企業工作,那麼絕對是一個不錯的機會:
如果在這么好的環境下,你還在混日子的話,只能說自己放棄自己了,那就更別提職業發展了。
如果你有機會進入一家創業公司並且你是一個願意接受挑戰的人的話,那麼絕對是一個不錯的機會 :
面試的時候如何選擇這家企業(某知名大公司 /創業型小公司 )是否適合你呢?
你需要在面試結束之後讓自己清晰的了解以下幾個問題:
對於上述這4點,你可能會說,面試的時候,有些企業不願意告訴你這些問題的答案。沒錯,我也遇見過這種公司。
但反過來問問自己,如果在面試的時候企業都不能回答你這些問題,這樣的公司你敢去嗎?你真的願意去嗎?難道只是為了眼前的那些薪資?希望大家好好思考一下。在這里推薦一個軟體測試交流群,群中會不定期的分享軟體測試資源,測試面試題以及測試行業資訊,朋友們可以在群中積極交流問題。私信我(軟體測試)
1.根據你的工作經歷,說說你對質量保證的理解?
這是個綜合性基礎知識問題,考驗你在測試行業工作幾年後的心得,是否有測試思維,明確自己的定位。可以談談你認為如何做好測試?如何衡量質量?你又如何專注軟體質量提升,幫助團隊快速迭代高質量交付
2.非關系型資料庫和關系型資料庫的區別,談談他們的優勢?
資料庫在測試工作中的重要性相信我就不用在這贅述了,需要你對常見的關系型資料庫和非關系型資料庫的原理理解,而且總結出它們之前的區別
3.在自動化方面有什麼成熟的方案,有沒有做過二次開發?
測試工程師離不開一個關鍵字,「自動化」,在任何類型的項目或多或少會用到自動化測試技術。關於前後端自動化技術,是否有一套完整的測試框架,技術體系。在開源自動化測試框架的理解上,有一定的開發思維,能進行封裝,開源框架上二次開發。能根據項目靈活打造適合團隊的測試框架,是測試工程師的能力分水嶺
4.質量部如果需要定製化一個質量體系平台,你會考慮哪些問題?
說實話,面試官這么問測試平台的問題,你可能就扛不住了。干過測試開發的應該都知道,測試平台的構造,除了技術難點。你要考慮如何去推進這個工作?測試平台研發出來後,在整個測試部門推廣運營這個平台是大難題。在功能測試人員的角度來想,去使用不成熟的測試平台來測試,如果加大你的工作量,對你自身工作和技術沒有什麼太大價值,一般都不是非常積極的去配合,測試平台如何推廣運營是個難題。你要讓所有人親身感受到用與不用這個測試平台有什麼區別。
我也收集和整理了一些軟體測試的學習資料,對於想學習或者進階軟體測試的朋友來說應該會很有幫助,有需要的小夥伴可以私信我(軟體測試)
我是二黑,一個不太黑的測試人~
⑤ 美團網的面試經歷
找工作,不容易啊,跑來跑去的,問題是,面試還不是很順利。
美團的筆試題目,演算法程序題居多,最後有安卓的、前端什麼的題,具體的也不太記得了。美團的題目做的不多,程序題有一道沒做。感覺還是不難的,題目拿起來一看,第一道不就是leetcode上的嗎,很簡單,刷過。接下來的,寫得算是還備中可以。當天晚上,我就有同學收到美團的面試通知,我還沒收到,以為是掛了。那就去霸面把,第二天早上,就跟同學一起去了,同學是去面試的,而我是來打醬油霸面的。誰知,HR叫我交簡歷,然後回去等通知。第一次霸面就這樣結束了。
沒想到,在當天下午就到美團的面試通知,HR說我通過了筆試了,叫我 明天早上8點30分去面試 。看來,是我太心急了,人家還沒通知,就去霸面了。汗。在面試的前一天晚上,把之前沒過的演算法題都看了一遍,特別是數組的題目,看到了2點多,感覺是拼了,考試都沒有這么努力。第二天就帶著倦意去面試了。等了不久,感覺是10幾分鍾,就開始面試了,美團是分批面的,一次面完,總共有3面,都是技術面,要是一面沒有通過,就直接叫你回家。在場的HR一看我,感覺有點熟,「你是不是昨天來霸面的?「,」是的「。沒想到,就這樣給留下印象了。
第一面的題目不難,算是一些很基礎的問題,有問到,進程和線程的區別;進程間同步的方式,這兩個都是很簡單的問題。其中還有問到如何編程實現 a^n ,我就說用二分的思想。還有幾道題,我忘了。我問他,我的表現怎麼樣,他說挺好的。就這樣,順利進入第二面,第二面基本上是沒問什麼操作系統和網路的題目,就直接出演算法題了,有如何判斷一個二叉樹是另一棵二叉樹的子樹;像列印機一樣,倒過來列印一棵樹,比如一個樹是這樣的',輸出4、5、6、2、3、1,這個就用層次遍歷,存儲遍歷過的節點,在每一層的結尾存儲該層的個數。。。
總之,是做出來了,二面的面試官也是挺幽默的,不會冷,不會面癱。二面也就這樣過了,順利進入3面。3面就問了一兩個HR經常問的問題,具體我也忘了,然後,就直接出題讓你做了,面試官是毫無表情,這下倒是有點壓力了,好吧,你出題把。在聊了最擅長的科目是什麼後,還有問到自己的代碼量等,還出了編程題,題目有
1)實現 char* upcase(const char* src, int len)。
2) 在類似6,7,8,1,2,3,4,5 的序列中用二臘滾敗分查找某個數。這道題我做過,不怕。
在做完第二道題後,面試官就說,面試就到這了。看時間也是差不多要中午12點了。 真是的輪顫,怎麼沒有人問我挖掘機哪家強?
滿意的地方:
好吧,就這樣結束了美團3面,就回去等通知了。
不滿意的地方:
話說,面試官面無表情,感覺不是很好,要給人壓力的樣子,特別想吐槽。好了,面試什麼的,最苦逼了,到現在還在等通知,就等把,看來是沒人要了。
⑥ Web前端企業面試題
答:
一、display和visibility的相同與不同點
1、相同點:display和visibility都有講元素隱藏的意思
2、不同點:display是元素隱藏,隱藏的元素不佔文檔流
而visibility隱藏的元素仍然占文檔流
二、display和visibility的屬性值
1、display
2、visibility
答:
在開發過程中經常需要循環遍歷數組或者對象,使用最多的方法 forEach、for…in 、 for…of ,整理一下他們的異同點
for循環
其實除了這三種方法以外還有一種最原始的遍歷,自Javascript誕生起就一直用的 就是for循環,它用來遍歷數組
for循環中可以使用return、break等來中斷循環
結果:
forEach
對數組的每一個元素執行一次提供的函數(不能使用return、break等中斷循環),不改變原數組,無返回值undefined。
輸出結果:
for…in
循環遍歷的值都是數據結構的鍵值
總結一句: for in也可以循環數組但是特別適合遍歷對象
結果:
for…of
它是ES6中新增加的語法,用來循環獲取一對鍵值對中的值
循環一個數組
循環一個普通對象(報錯)
答:
px:像素(Pixel),相對長度單位。像素px是相對於顯示器屏幕解析度而言的 。--即解析度不同的機型當前對應的距離可能發生變化。(1Inches=xPx)。
所以相對於同一機型來說是一個絕對的長度單位。
em:是相對長度單位。相對於當前對象內文本的字體尺寸。如當前對行內文本的字體尺寸未被人為設置,則相對於瀏覽器的默認字體尺寸 。
以其父級元素為基準來變化長度。所以其演算法不是一個固定的值。
rem:是CSS3新增的一個相對單位(root em,根em) 。
那麼其好用在用可以直接設置HTML的font-size,然後在其子類都是以這個大小為基準變化的值。
在移動設備上,我們常常設置
此方式的目的是為了將當前屏幕(PC)解析度的px轉化成手機端的px,讓px在手機上能夠兼容此方式。
因此,此時看見的12px與PC端的12px無異。但是,如果不寫著個meta的話,那麼,瀏覽器會一直以PC的視圖來決定手機端的px的大小,讓視圖看起來變小了很多。
那麼,響應式頁面則經常配合媒體查詢media 來設置不同解析度下手機的各種不同的配置機構,然後根據父級來變化所有的相對長度。
基礎篇
1.shift
// 刪除原數組的第一項,並返回刪除元素的值,如果數組為空則返回undefined
2.unshift
// 將參數添加到原數組開頭,並返回數組的長度
//註:此方法在ie6.0下
// 測試的返回值始終為undefined,在firefox下測試的返回值為7,所以此方法不可靠
// 一般需要用返回值時可用splice代替
3.pop
// 刪除原數組的最後一項,並返回刪除元素的值;如果數組為空則返回undefined
4.push
// 將參數添加到原數組末尾,並返回數組的長度
5.concat
// 返回一個新數組,是將參數添加到原數組中構成的
6.splice
7.reverse
8.sort(orderfunction)
9.slice(start,end)
10.join(separator)
11.indexOf
12.lastIndexOf
13. Array.isArray()
14. Array.toString()
進階篇
1.forEach
是最為常用的情景,它至於遍歷,可以在獲取當前數據項的前提下,對數據進行修改。它沒有返回值。理解起來也是最容易的。
2.map
map的本意就是映射,也就是將一個值從一種形式映射到另一種形式,比如將key映射到value。它的每一次遍歷都會有一個返回值。這些返回值組合成最終的結果數組。事實就是如此
forEach和map對比
相同點
1)都是循環遍歷數組中的每一項;
2)forEach()和map()匿名函數的參數相同,參數分別是item(當前每一項)、index(索引值)、arr(原數組);
3)this都是指向調用方法的數組;
4) 只能遍歷數組;
不相同點
1)map()創建了新數組,不改變原數組;forEach()可以改變原數組。
2)遇到空缺的時候map()雖然會跳過,但保留空缺;forEach()遍歷時跳過空缺,不保留空缺。
3)map()按照原始數組元素順序依次處理元素;forEach()遍歷數組的每個元素,將元素傳給回調函數。
3.filter
它致力於從已有的數組中篩選出符合一定條件的數據項,最後的返回值是所有符合條件的數據項構成的數組。它不會修改原來的數組。記住,它的立足點就是篩選。也僅僅是篩選。還有一點需要注意:每一次遍歷都會有一個返回值,它的類型是布爾類型。返回值只有是true,當前遍歷項才會被篩選中。不要試圖在filter中去修改原始數組。
理解: 就是在一堆數據裡面去篩選你需要的數據 或者 剔除你不需要的數據
4.find()
返回通過測試的數組的第一個元素的值,
理解:假如你去一個一群人的地方去找人 你說我找xxb 他要是在那裡就找到 不在那裡就是undefined
在第一次調用 callback 函數時會確定元素的索引范圍,因此在 find 方法開始執行之後添加到數組的新元素將不會被 callback 函數訪問到。如果數組中一個尚未被callback函數訪問到的元素的值被callback函數所改變,那麼當callback函數訪問到它時,它的值是將是根據它在數組中的索引所訪問到的當前值。被刪除的元素仍舊會被訪問到。
語法
array.find(function(value, index, arr),thisValue)
value:必須,代表當前元素,其他四個參數都是可選,index代表當前索引值,arr代表當前的數組,thisValue代表傳遞給函數的值,一般用this值,如果這個參數為空,undefined會傳遞給this值
返回值:返回符合測試條件的第一個數組元素的值,如果沒有符合條件的則返回undefined。
擴展: findIndex()方法的用法與find()方法非常類似,返回第一個符合條件的數組成員的位置,如果所有成員都不符合條件,則返回-1。自己try吧
5.every
理解: 這個就像 上課了 老師說 昨天布置的作業 只要有一個人沒有寫完 今天就不講課 然後挨個檢查 當檢查到有一個沒有寫完的時候 就不檢查了 返回 不講課了(false)
6.some
理解: 相當於在一個數組裡面找你想要的那個數 找到了 就返回true 找不到就返回false
7.rece
它這個方法是接收一個函數作為累加器,將數組中的值(從左向右)開始合並,最總為一個值 然後返回出來,callback
他可以傳四個參數:
1,previousValue:上一次調用回調返回的值,或者是提供的初始值(initialValue)
2,currentValue:數組中當前被處理的元素
3,index:不啰嗦,自己顧名思義去吧
4,array:返回調用rece的數組
彩蛋: 這里附上前幾天某某人比較喜歡的切割字元串的方法
substring() 和 substr()
相同點: 如果只是寫一個參數,兩者的作用都一樣:都是是截取字元串從當前下標以後直到字元串最後的字元串片段。
不同點: 第二個參數
substr(startIndex, lenth) // 第二個參數是截取字元串的長度(從起始點截取某個長度的字元串);
substring(startIndex, endIndex) // 第二個參數是截取字元串最終的下標 (截取2個位置之間的字元串,『含頭不含尾')。
1:在使用vue框架的過程中,我們經常需要給一些數據做一些初始化處理,這時候我們常用的就是在created與mounted選項中作出處理。
首先來看下官方解釋,官方解釋說created是在實例創建完成後唄立即調用。在這一步,實例已完成以下配置:數據觀測 (data observer),屬性和方法的運算,watch/event 事件回調。然而,掛載階段還沒開始,$el 屬性目前不可見。
這話的意思我覺得重點在於說掛架階段還沒開始,什麼叫還沒開始掛載,也就是說,模板還沒有被渲染成html,也就是這時候通過id什麼的去查找頁面元素是找不到的。下面看下實例來證明。
所以,一般creadted鉤子函數主要是用來初始化數據。
2:mounted鉤子函數一般是用來向後端發起請求拿到數據以後做一些業務處理。官方解釋如下:
el 被新創建的 vm.$el 替換,並掛載到實例上去之後調用該鉤子。如果 root 實例掛載了一個文檔內元素,當 mounted 被調用時 vm.$el 也在文檔內。
這意思是該鉤子函數是在掛在完成以後也就是模板渲染完成以後才會被調用。下面看實例
下面是結果
nihao
取到了值,這說明這時候vue模板已經渲染完畢。因此,Dom操作一般是在mounted鉤子函數中進行的
computed:{} 計算屬性,什麼是計算屬性呢,我個人理解就是對數據進行一定的操作,可以包含邏輯處理操作,對計算屬性中的數據進行監控。計算屬性是基於它的以來進行更新的,只有在相關依賴發生改變時側能更新變化,以函數的形式返回結果。然後可以像綁定普通屬性一樣在模板中綁定計算屬性。
總結:
通常created使用的次數多,而mounted通常是在一些插件的使用或者組件的使用中進行操作,比如插件chart.js的使用: var ctx = document.getElementById(ID);通常會有這一步,而如果你寫入組件中,你會發現在created中無法對chart進行一些初始化配置,一定要等這個html渲染完後才可以進行,那麼mounted就是不二之選。
methods:{}中的方法都需要主動去觸發,比如點擊click之類的
而created(){}、mounted(){}、裡面的代碼都是自動去執行的,即vue生命周期到了哪一步就直接去執行對應鉤子函數裡面的代碼了,無需手動去執行
created中主要放初始化獲取數據之類,mounted()中掛載到具體的DOM節點
computed:{} 計算屬性,什麼是計算屬性呢,我個人理解就是對數據進行一定的操作,可以包含邏輯處理操作,對計算屬性中的數據進行監控。計算屬性是基於它的以來進行更新的,只有在相關依賴發生改變時側能更新變化,以函數的形式返回結果。然後可以像綁定普通屬性一樣在模板中綁定計算屬性。
mounted 是生命周期鉤子,vue的生命周期中一個實例的mounted只會運行一次。mounted在vue的渲染模板掛載到$el元素上才會調用,很顯然你export的時候el都么有自然不會運行mounted鉤子函數了。
所有的方法都應該在methods里定義,然後在created或者mounted里 使用this調用方法,用這種方式實現初始化
6、Vue中組件之間的傳參方式有哪些方式?
Vue 組件傳參的八種方式總結
Vue 組件的使用不管是在平常工作還是在面試面試中,都是頻繁出現的。因此系統的梳理一下組件之間的傳參還是非常有必要的
一、props 傳參
子組件定義 props 有三種方式:
// 第一種數組方式
// 第二種對象方式
// 第三種對象嵌套對象方式
第三種對象默認支持 4 種屬性,並且都是非必填的。可以隨意使用
父組件傳參的倆種方式
第一種靜態屬性傳參
注意:
1、在不定義 props 類型的情況下 props 接受到的均為 String。
2、當 props 屬性指定為 Boolean 時,並且只有屬性 key 沒有值 value 時接受到的是 true
第二種動態屬性傳參
注意:
1、需要區分非簡寫形式傳入的值是對象,則會對應 props 中多個值
2、會保留傳入值的類型
3、如果是表達式則獲取到的是表達式的計算結果
二、attrs 和listeners
$attrs
$attrs 會獲取到 props 中未定義的屬性(class 和 style 屬性除外),支持響應式。常用的場景有倆種:
組件嵌套組件時可以使用 $attrs 來支持過多的屬性支持。比如 elementUI 的 table 組件。支持的屬性十幾個,而平常封裝的時候用的最多的也就一倆個。
屬性默認是添加在父組件上的,有時候想把多餘的屬性添加在子組件上(可以結合 inheritAttrs: false 屬性,讓父屬性不接受多餘的屬性)
$listeners 定義的事件都在子組件的根元素上,有時候想加到其他元素上。就可以使用 $listerners。它包含了父組件中的事件監聽器(除了帶有 .native 修飾符的監聽器)
三、$emit 通知
這里有一道考題: for 循環的時候如何拿到子組件的傳值和 for 中循環的值
答案有倆種,一是 $event, 二是 閉包。只是需要注意 $event 只能獲取到第一個值
四、v-model
這個其實是一種通過 emit,on 的組合方式。優點再於同步值方便,寫法優雅。下面三種寫法其實是一個意思
五、插槽
六、$refs, $root, $parent, $children
$root 獲取根組件
$parent 獲取父組件
$children 獲取子組件(所有的子組件,不保證順序)
$refs 組件獲取組件實例,元素獲取元素
七、project / inject
注意:注入的值是非響應的
八、Vuex
這個相當於單獨維護的一組數據,就不過多的說了。
watch,computed和methods的關系
1.watch和computed都是以Vue的依賴追蹤機制為基礎的 ,它們都試圖處理這樣一件事情:當某一個數據(稱它為依賴數據)發生變化的時候,所有依賴這個數據的「相關」數據「自動」發生變化,也就是自動調用相關的函數去實現數據的變動。
2.對methods:methods裡面是用來定義函數的,很顯然,它需要手動調用才能執行。而不像watch和computed那樣,「自動執行」預先定義的函數
watch和computed各自處理的數據關系場景不同
1. watch 擅長處理的場景: 一個數據影響多個數據
2. computed 擅長處理的場景: 一個數據受多個數據影響
watch用法 監聽下記haiZeiTuan_Name的值,會改變其他所有的值
結果:this.suoLong會變為 '橡膠海賊團索隆',以此類推
computed用法 監聽下記firstName,secName,thirdName的值,會改變luFei_Name的值
methods和computed的區別例子
注意兩次點擊computed返回的時間是相同的!!
1.兩次點擊methods返回的時間是不同的
2.注意兩次點擊computed返回的時間是相同的
【注意】為什麼兩次點擊computed返回的時間是相同的呢?new Date()不是依賴型數據 (不是放在data等對象下的實例數據) ,所以computed只提供了緩存的值,而沒有重新計算
只有符合:1.存在依賴型數據 2.依賴型數據發生改變這兩個條件 ,computed才會重新計算。
參考:http://www.cnblogs.com/penghuwan/p/7194133.html
答:https://codecat.blog.csdn.net/article/details/100031285
1、Promise
Promise 是非同步編程的一種解決方案,比傳統的解決方案——回調函數和事件——更合理和更強大,簡單地說,Promise好比容器,裡面存放著一些未來才會執行完畢(非同步)的事件的結果,而這些結果一旦生成是無法改變的
2、async await
async await也是非同步編程的一種解決方案,他遵循的是Generator 函數的語法糖,他擁有內置執行器,不需要額外的調用直接會自動執行並輸出結果,它返回的是一個Promise對象。
兩者的主要用法、語法就不贅述了,感興趣的同學可以自行查閱 es6中文文檔
兩者的區別
1、Promise的出現解決了傳統callback函數導致的「地域回調」問題,但它的語法導致了它向縱向發展行成了一個回調鏈,遇到復雜的業務場景,這樣的語法顯然也是不美觀的。而async await代碼看起來會簡潔些,使得非同步代碼看起來像同步代碼,await的本質是可以提供等同於」同步效果「的等待非同步返回能力的語法糖,只有這一句代碼執行完,才會執行下一句。
2、async await與Promise一樣,是非阻塞的。
3、async await是基於Promise實現的,可以說是改良版的Promise,它不能用於普通的回調函數。
簡單來看,這兩者除了語法糖不一樣外,他們解決的問題、達到的效果是大同小異的,我們可以在不同的應用場景,根據自己的喜好來選擇使用。
⑦ 請問面試美團的正常流程是什麼
美團面試主要是分為筆試和面試,美團是分批面的,基本是一次性面完總共三面,全都是技術面的。一面沒通過,直接說farewell了。前兩面沒壓力,面試官是和顏悅色;到第三面,能明顯感覺到差別,基本面無表情,做好心理准備。面試過程:筆試題目,演算法程序題多,最後安卓前端題,題目還是不難的,題目在lintcode上刷到過一樣的。第一面:隨時Be Nice,一個普通員工就可能是你的面試官;首先做自我介紹。面試官對我的經歷問了幾個問題,然後就是問些很基礎,進程和線程的區別;進程間同步方式,。還問到如何編程實現 a^n ,我就說用二分的思想。說到思想,美團蠻注重思想的,第二第三面過程里如果有什麼你一下子難實現的,你就講清楚你是怎麼個思路,不要消極對待就好。然後就是隨意提問,問到了Java裡面的各種語言機制,問到了計算機網路裡面的三次四次握手,UDP和TCP區別,get和post區別等等,沒有深問。問的很雜很多。
第二面:基本上是沒問操作系統和網路的題目,就出演算法題,有如何判斷一個二叉樹是另一棵二叉樹的子樹;像列印機一樣,倒過來列印一棵樹,比如一個樹是這樣的,輸出4、5、6、2、3、1,這個就用層次遍歷,存儲遍歷過的節點,在每一層的結尾存儲該層的個數……面試官檢查驗證代碼超級仔細,所以面試過程中做題目的時候還是要更加專心一點,不然被他發現錯誤. 接著,第二個問題,自己寫一個Stack類,要實現push、pop操作。
第三面:面試官基本是Boss級別的吧,各種問題啊,興趣愛好未來規劃啥,了解你這個人的性格和美團契合。三面都是技術面,最後還是要寫代碼
1)實現 char* upcase(const char* src, int len)。
2) 類似6,7,8,1,2,3,4,5 的序列中用二分查找某個數。他還會問問看過的書啊,問幾個簡單的問題,能答上來就好。基本是工作要求里提到的名著或者就是教材里學到的東西,因為三面的面試官是大佬,是希望能我們能有積極解決問題熱情。
前期准備:對美團注重演算法早有耳聞,還是很早就開始准備刷題。面試時筆試和面試里都遇到了在lintcode 做過的原題。總之,面美團演算法必要刷,難以實現就用邏輯清晰的思路來拯救面試;在技術都OK前提下,面試官看重的更多是優秀邏輯思維能力,善於從復雜系統表象中分析問題,對解決復雜問題充滿激情。不要遇到困難有消極情緒!
⑧ 誰能給我出一兩道 web前端筆試題 上機題啥的,呵呵,比較常考的
[面試題] 某企業前端開發面試題
【HTML & CSS】
1. Doctype? 嚴格模式與混雜模式-如何觸發這兩種模式,區分它們有何意義?
2. 行內元素有哪些?塊級元素有哪些?CSS的盒模型?
3. CSS引入的方式有哪些? link和@import的區別是?
4. CSS選擇符有哪些?哪些屬性可以繼承?優先順序演算法如何計算?內聯和important哪個優先順序高?
5. 前端頁面有哪三層構成,分別是什麼?作用是什麼?
6. css的基本語句構成是?
7. 你做的頁面在哪些流覽器測試過?這些瀏覽器的內核分別是什麼?經常遇到的瀏覽器的兼容性有哪些?怎麼會出現?解決方法是什麼?
8. 如何居中一個浮動元素?
9. 有沒有關注HTML5和CSS3?如有請簡單說一些您對它們的了解情況!
10. 你怎麼來實現下面這個設計圖,主要講述思路 (效果圖省略)
11. 如果讓你來製作一個訪問量很高的大型網站,你會如何來管理所有CSS文件、JS與圖片?
12. 你對前端界面工程師這個職位是怎麼樣理解的?它的前景會怎麼樣?
【Javascript】
1. js是什麼,js和html 的開發如何結合?
2. 怎樣添加、移除、移動、復制、創建和查找節點
3. 怎樣使用事件以及IE和DOM事件模型之間存在哪些主要差別
4. 面向對象編程:b怎麼繼承a
5. 看看下面alert的結果是什麼
view sourceprint?1.function b(x, y, a) {
.arguments[2] = 10;
.alert(a);
}
b(1, 2, 3);
如果函數體改成下面,結果又會是什麼?
a = 10;
alert(arguments[2] );
6. 請編寫一個JavaScript函數 parseQueryString,它的用途是把URL參數解析為一個對象
var obj = parseQueryString(url);
alert(obj.key0) // 輸出0
7. ajax是什麼? ajax的交互模型? 同步和非同步的區別? 如何解決跨域問題?
8. 什麼是閉包?下面這個ul,如何點擊每一列的時候alert其index?
<ul id=」test」>
<li>這是第一條</li><li>這是第二條</li><li>這是第三條</li>
</ul>
9. 最近看的一篇Javascript的文章是?
10. 常使用的庫有哪些?常用的前端開發工具?開發過什麼應用或組件?
11.說說YSlow(可以詳細一點)
答案在參考資料裡面可以找到,答案在參考資料裡面可以找到,答案在參考資料裡面可以找到
⑨ 美團android崗編程題,有兩個都AC的嗎
美團android崗編程題,有兩個都AC的嗎
對兩個按鈕的背景進行改變button、button2的選中和為選擇狀態.beijing1).drawable.setBackgroundResource(R,讓後再button1和button2的點擊事件中,分別為button1的選中和為選擇狀態;上面是改變按鈕背景的代碼可以做兩組圖片
宋朝衙門有兩個都頭嗎
是的。
一用一備,一正一副,雷橫和朱仝就是;作押司也有兩個,一個是第一押司,還有一個小押司,宋江是第一押司.
系統進程里有兩個 *** ss.exe兩個都小寫的
SMSS.EXE:Session Manager Subsystem,該進程為會話管理子系統用以初始化系統變數,MS-DOS驅動名稱類似LPT1以及COM,調用Win32殼子系統和運行在 Windows登陸過程。它是一個會話管理子系統,負責啟動用戶會話。這個進程是通過系統進程初始化的並且對許多活動的,包括已經正在運行的 Winlogon,Win32(Csrss.exe)線程和設定的系統變數作出反映。在它啟動這些進程後,它等待Winlogon或者Csrss結束。如果這些過程時正常的,系統就關掉了。如果發生了什麼不可預料的事情, *** ss.exe就會讓系統停止響應(掛起)。要注意:如果系統中出現了不只一個 *** ss.exe進程,而且有的 *** ss.exe路徑是"%WINDIR%SMSS.EXE",那就是中了 TrojanClicker.Nogard.a病毒,這是一種Windows下的PE病毒,它採用VB6編寫,是一個自動訪問某站點的木馬病毒。該病毒會在注冊表中多處添加自己的啟動項,還會修改系統文件WIN.INI,並在[WINDOWS]項中加入 "RUN" = "%WINDIR%SMSS.EXE"。手工清除時請先結束病毒進程 *** ss.exe,再刪除%WINDIR%下的 *** ss.exe文件,然後清除它在注冊表和WIN.INI文件中的相關告局項即可 。
進程文件: *** ss or *** ss.exe
進程名稱: Session Manager Subsystem
*** ss.exe是微軟Windows操作系統的一部分。該進程調用對話管理子系統和負責操作你系統的對話。這個程序對你系統的正常運行是非常重要的。注意: *** ss.exe也可能是Win32.Ladex.a木馬。該木馬允許攻擊者訪問你的計算機,竊取密碼和個人數據。該進程的安全等級是建議立即刪除。
雙卡雙待手機有兩個都是C網的嗎?
你好,沒有。
公差有沒有兩個都是正的?
有!兩個正、兩個負、一正一負都有。
12.0 +0.21/+0.03,它的基本尺寸是12,上偏差+0.21,下偏差+0.03,公差值為+0.18(上偏差減去下偏差)。它的意思是說:零件的最大尺寸為12.21,最小尺寸為12.03,尺寸數值在12.03至12.21之間的零件都是合格的產品。
另外,我要糾正你問題中的一個錯誤:公差值永遠都是正的,只有偏槐旅差值才有正負之分,偏差的正負由「基本偏差代號」決定。
還有什麼不懂的,發信息給我就行啦
當然有啊。
比如12.0 +0.21/+0.03mm,
這通常出現在基軸制裡面孔的公差,只許正不許負,不然套不進去——當然過盈配合就是另外一回襪明讓事。
我有兩個伴娘,兩個都帶伴娘胸花可以嗎
都可以帶的。
伴娘伴郎,可以說是一個婚禮工作組中的重要人物了。通常,新人會請一個女伴做伴娘,也有人請6~12位女友或姐妹,其中有一位是主伴娘,其他稱之為「伴嫁」或「女儐相」。當伴娘只有一位時,有些新郎也會請2~6位好友跟隨車隊前往迎娶新娘,以壯聲勢並且讓新娘家人風光。除一位主伴郎外均稱為「男儐相」。通常,伴郎的人數應當與伴娘成對。
Lovey-Dovey有兩個都是什麼版本的啊
話劇版:第一版發行的MV是"CRY CRY"後半部分的話劇版, 共17分鍾30秒,將於12月24日公開。
僵屍版:第二版僵屍版MV。獨特化妝的僵屍版中除了T-ara還有演員林秀香出演。
另外,Lovey-Dovey預計還將公開3版MV,已知一版為東京版。
CCM將為「lovey dovey"創建另外3個不同類型的MV。
android ios需要兩個都學嗎
如果不是對性能/效果要求較高的,如游戲,且,仍然需要一些原生效果,建議考慮混合模式(Hybrid)。
PhoneGap框架還是值得考慮,前端jQuery或者Sencha Touch配套:
1,開源
2,還算主流技術
3,邏輯結構/操作:Webapp技術
4,原生效果:那就得寫些原生代碼了
買早安北京還是英國宮啊,有兩個都看過的嗎?
看你錢包咯。不差錢就買英國宮,找性價比高的就早安北京。