search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

給產品經理講技術:小程序這麼火,你不來學學js?

js本身是非常簡單的。

微信正式發布小程序雖然已經過去一個星期了,但人們討論小程序的熱情似乎絲毫未減。這幾天一打開微信公眾號,隨處可見的是「小程序最全指南」、「如何利用小程序發家致富」之類的文章。確實,互聯網圈子就那麼大,微信的每一個小動作都能引發一波小高潮。而且產品經理對微信似乎也特別敏感,就連果果的文章,如果在標題里提到微信二字,閱讀量也是直接上一個台階。不信?下回咱做個AB test。

果果當然也不落俗套,跟風寫了幾篇關於小程序的技術分析文章。分析來分析去,小程序無非就是一個高度定製的H5頁面。微信自己弄了一套html標籤,稱之為wxml,又封裝了一些樣式規則,叫wxss,不管怎麼叫,換湯不換藥,裡子里還是web前端里html+css+js那一套。封裝一方面是為了降低開發成本,根本上是為了收攏控制許可權,開發者能用的東西越少,微信需要操心的事情也就越少。當然,這些都不是重點。重點是,如果你想自己搞一個小程序出來,你無論如何都繞不過js這個坎兒。

後台不少同學留言,說他們是如何下決心學習js,又是如何從入門到放棄的。果果聽了很是痛心。當年上學那會兒,有兩條路擺在果果面前,學js還是學java,果果毫不猶豫的選擇了java。理由是,js這麼簡單,能幹啥?現在想想真是圖樣,正是因為簡單,決定了它有群眾基礎,任憑你java、c++如何如何血統純正、如何如何多才多藝,最終都是要被淹沒在人民群眾的汪洋大海中的。

js真的簡單嗎?

真、簡單。

舉個例子,js里只有5中簡單的數據類型:undefined、null、Boolean、Number和String。前兩個不看,它們表示不存在(計算機里,不存在的東西也是一種東西,叫做「不存在的東西」)。後面三個,Boolean可以表示真假、是非、對錯、你愛不愛我之類的只有兩個值的東西,Number表示數字如1024,String表示一個單詞或者一句話。這就完了,大千世界,盡在掌握。作為對比,C語言里,short、char、int、long都能表示一個整數,我的天吶。還有怎麼搞都搞不明白的指針,我一度懷疑就是因為這玩意兒才導致我們專業男女比例7比1的。更噁心的是,指針竟然也他媽的可以表示一個整數。

js除了數據簡單,語法也簡單。語句常用的就兩套,if…else,for….。其他的都屬於高級語法,裝逼用的。函數和C語言里長的一個樣,只是前面多了一個前綴叫function。熟練使用即可行走江湖。

js後來又從java那裡學來了對象,從對象的定義到對象的創建,都做了簡化。常用的就3個,Array、Date和RegExp,分別表示數據的集合,日期以及正則表達式。面向對象的那套東西,繼承和封裝,js也支持,不過老版本的js實現起來有點繞,現在的ES6標準,已經簡化許多了。

掌握了基本類型、基本語法、函數和對象,可以說js就算入門了,加起來不會超過兩天。但是,此時你就迫不及待的跑去跟程序員撕,肯定會被鄙視的。他們會非常自信的向你拋出他們面試的時候被折磨慘了的兩個概念,原型和閉包,以此勸你知難而退。

什麼是原型和閉包?

請自行百度吧,我果某人自認講不明白。這些東西啊,光背概念是萬萬不行的,等用到的時候再去查,查明白了你也就懂了。

至此,js語言層面的東西,你應該可以應付了。然後要學的是,各種API。

什麼API?js運行在瀏覽器里,首先當然是瀏覽器提供的API了。這些API包含了瀏覽器提供的方方面面的能力,比如窗口的打開關閉、前進後退歷史等等。它們大多放在一個叫window的全局對象里。你隨便打開一個網頁,按F12,在console里輸入window,就會知道,這傢伙真是大而全。

還有一些API,是用來操作頁面的結構的。最簡單的例子,沒有拉到數據的時候轉菊花,拉倒數據之後替換成真正的數據,界面元素的改變,也可以通過js來完成,術語叫DOM操作。

當然,還要學習小程序的API。微信自己提供了很多終端才有的能力,比如感測器、打開文件等等。以前的時候,是通過js bridge來做的,其實是一個道理。如果你想理解小程序的運行過程,有一個概念必須要掌握:「事件」。事件是程序里很常見的一種東西,包括我們,也是生活在充滿事件的世界中。如果你對某個事件感興趣,但它還沒有發生,就比如美帝解放朝鮮這一事件,你可以先訂閱,等事件觸發的時候,讓別人給你一個通知,給你一次執行自己代碼的機會。小程序里,APP被打開、APP壓後台、APP又回來了,都是事件。這樣的事件來臨的時候,你都有機會、而且是一定要做點什麼,不然程序怎麼出bug的,你都不知道。

總結

js本身是非常簡單的。但是,我一直覺得,如果你接觸一個新的東西,小到一門語言大到一個行業,從入行到入門,一定要砸夠相應時間進去,無論牛人與否,無論效率高低。C++入門需要21天,js嘛,一個星期就夠了。你不妨從你那些可以改變世界卻只差一個程序員的idea 里,隨便挑一個出來,落地成一個小程序,路上有多坑,你走一遍就知道了。

#專欄作家#

給產品經理講技術,_teacher),人人都是產品經理專欄作家。資深程序猿,專註客戶端開發若干年,對前端、後台技術略懂,熱衷於對新的科技領域的探索。

本文原創發佈於人人都是產品經理。未經許可,禁止轉載。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦