堆棧溢出報錯引起的思考

2015年末寫的小文現在拿出來現在拿出來分享

Stack overflowjavascript

這幾天開始看買了好久的一本書《javascript數據結構與算法》,我很後悔本身不早一點看這本書,打開書翻看以後我更後悔,後悔大學時期老師講了一學期的「C語言數據結構」,那個時候對本身未來從事什麼職業,哪個行業根本沒有概念,還曾夢想着成爲那種腳踩高跟鞋,左手星巴克,右臂90度挎包行走在車來人往的CBD,呵呵,看看如今的本身,天天幾近凌晨到家,次日滿滿雞血行走在鍵盤之間,每次清晨洗完臉後纔會發現,oh 原來這纔是生活以及鏡中真實的本身,既然選擇了這個職業也就沒什麼熱愛不熱愛的,只要你投入時間和汗水,它也必定會回報你買得起Chanel 和La Mer。前端

因此人生的哪個時刻,當你在接觸一些新東西的時候,都應該以「這是增加我技能」的心態去對待,說不定哪個時刻你就會用到它,翻開個人書,那些似曾熟悉的名詞一個個從腦中飄過,圖,二叉樹,動態規劃...."好像那些知識和概念曾在老師的板書上出現過不少次,依稀還能聞到那些充滿知識的粉筆沫,我之前以爲作前端是不須要用到這些知識的,如今我發現本身是多麼的才疏學淺,我學的東西太淺了,而我須要學的東西實在太多了,或者換一種角度,這也正是本身進階路上的寶石,和怪物,收穫每一顆寶石,打倒每個怪物就能夠通關了(進階)。java

看數據結構與算法的主要緣由是,一次遞歸調用事件引起的,遞歸調用應該是你們都熟悉和使用過的簡單算法,雖然使用它並不能提高性能,可是使用遞歸更容易理解和少寫不少冗餘代碼,而我以前也只是死死地記住了它的使用條件和簡單實例程序員

  1. 有反覆的執行過程(調用自身)
  2. 有跳出反覆執行過程的條件(遞歸出口)
  3. 實例有:階乘,斐波那契數列

在真實的開發過程當中,若是沒有系統的學習和不斷地實踐,其實你根本想不到如何使用它,這就是爲何我曾經寫過那麼多的for循環和if判斷,或者更直接的說「你其實根本就沒有學會它」,在最近的一次調試過程當中,我在終端執行gulp命令後,開始在瀏覽器中測試頁面效果,然而控制檯報了一個在我真正從事開發的這9個月中從未遇到過的error算法

Maximum call stack size exceededgulp

當時的我都沒有過腦子直接copy到Google上面,按下回車的瞬間,各類各樣的搜索結果映入眼簾,OMG當時我才發現,這不是我經常用來提問的知名問答平臺stack overflow的名字嗎?而我是多麼的好笑,聯爲何報這個錯誤都不知道,當時很是的沮喪,找不到緣由,最後老大告訴我,我在子類中調用了父類的loader方法,可是父類找不到模板,繼續loader以後,形成了無限遞歸調用,致使了:too much recursion,而就在前幾天,老大剛剛給我和師兄講了遞歸的用法,還幫我修改了我在類種寫的冗餘代碼,而那天我只是搞懂了老大講的內容,回來以後本身沒有細看和深刻學習真東西仍是學不到的,一個平臺給你學習和成長的機會,而且不斷地push你,這樣的機會也是要牢牢抓住不能放手的,因此你本身才是驅動一切事物的核心,現在這件事過去一週後,我翻看了個人《javascript數據結構與算法》,第十一章:算法補充知識中清晰的講解了遞歸的使用,js調用棧限制,瀏覽器異常報錯,異常捕獲等,而這些我若是早一點看和學習,而且按照書中的例子去實踐,估計老大那次給我講的時候我會理解的更透徹,但若是沒有這兩次的經歷,我也不會開始系統的學習數據結構和算法,正如當初我沒有學好這門課程,現在我在這上吃了苦頭,又如當初我發誓死也不當程序員,而現在的代碼工做者正是本身,生活中簡直太多的「若是,當初,要是」了,因此把握住當下的每一件事都本着「它將令我成長,它將爲我所用」去作,纔會活的更棒。即便今天的我在灰頭土臉的敲代碼,也要學會畫精緻的妝容,擁有敏銳的時尚氣息,過有品質的生活,夢想就是用來實現的,難道不是嗎瀏覽器

相關文章
相關標籤/搜索