PIXNET Logo登入

文科少女學程式

跳到主文

誰說文科腦沒辦法寫程式!快跟我一起用文科腦學程式吧!

部落格全站分類:數位生活

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 4月 27 週四 202322:00
  • 【亂亂寫筆記】node sass -排除版本不符問題

最近終於有新專案可以碰了,但是碰新專案之前,會需要經歷幾個步驟,要先install在把專案run起來,有時候就有可能會遇到node-sass版本不對的問題。
排除node-sass版本不符問題
實作情境
在clone新專案後,正常的進行install程序後,要把專案跑起來時跳以下的錯誤。(已經切換到應該要使用的node版本,仍然會跳錯)
問題解決方式
可以透過以下方排除這個狀況。
1. 確認已經切換到該使用的node版本。
2. 切換到node module資料夾李。
3. 透過以下指令讓node-sass重新rebuild
npm rebuild node-sass
4. 跳出以下內容時,就代表有順利完成這個動作。

貼心小提醒!!
因為是亂亂寫筆記,真的就是純紀錄之前實作時,如何解決曾經卡住過的問題,所以主要都是解決問題的方式為主,不會有太多詳細說明。
(繼續閱讀...)
文章標籤

文科少女寫程式 發表在 痞客邦 留言(0) 人氣(14)

  • 個人分類:亂亂寫程式筆記
▲top
  • 3月 28 週二 202312:15
  • 【前端學Nginx】什麼是Nginx?

前陣子突然被問到,「你說你有碰過Nginx,那你知道什麼是Nginx嗎?」,這麼突然被一問,老實說我只回的出「它是一個伺服器」,如果要往更細節的問,我其實真的就回答不好了QQ
既然發現到自己好像對碰過的東西有些模糊地帶,不如就花點時間,把模糊的地方給清晰化(?)吧!

什麼是Nginx?
Nginx是一種web server,除了Nginx外,還有一個也很有名的web server叫做Apache,不過今天的主角是Nginx,就只以Nginx為主了。
接下來直接看一下
官方的介紹吧!
官方的介紹:
nginxX是一個HTTP和反向代理伺服器,也是一個信件代理伺服器,以及一個通用的TCP/UDP代理伺服器。
更白話的去理解什麼是Nginx的話,就是一台當我們連進網頁時,接收我們request,再發送response給我們的機器,那台機器裡面會存放一些網頁的資料(例如:前端相關的靜態資源),也會有其他附加的用途可以應用。

Nginx的用途有哪些?
大概了解Nginx是什麼之後,再更進一步來看看幾個Nginx比較常會拿來應用的用途。
反向代理
在剛接觸Nginx的時候,第一個接觸到的概念就是proxy(代理),其中又區分成反向代理和正向代理。
在使用Nginx時,可以透過proxy_pass來設定反向代理,接著也來快速看一下反向代理和正向代理的概念各是什麼。
未命名
- 正向代理:
在正向代理的情境下,當client,也就是我們使用瀏覽器輸入網址,發送request的時候,會先連到proxy server,再轉連到我實際上真正要連到的web server。這個時候真正的目的地並不會知道更早之前發生什麼事,都只知道proxy server對他發送request,所以會不知道實際發送request的人是client,而不是proxy serve。這個情境通常都會應用在VPN上,沒錯!就是大家最近常聽到的surfshark VPN的VPN,有在玩遊戲或是跨到國外追劇的人應該都對這種VPN不陌生,而他的應用概念就是正向代理,白話一點來說的話,也就是先連到VPN提供的proxy,再用那個proxy去騙實際上要連到的目的地你的真實身份,因為他只會知道是VPN的proxy對他發送request。
- 反向代理:
正向代理隱藏的是client的身份,那反過來看的話,反向代理也就是隱藏真實目的地。在反向代理的情境下,client端,也就是我們使用瀏覽器輸入網址,發送request時,我們會以為proxy server是我們的目的地,但是實際上proxy server還會繼續往下導到真正的目的地。這個概念的應用情境通常都會應用在負載平衡上和與安全相關的防火牆上。

負載平衡
這邊應用到的概念也就是前面有提到的反向代理,透過設定upstream 搭配 proxy_pass來達成。當負載太高時,就會被分配連到其他伺服器。口語化來解說的話,也就是雖然連的網址是一樣的,但會依照當下的負載狀況,去分配實際上連到的伺服器.
緩存
Nginx還可以拿來做一些緩存的動作,可以透過設定proxy_cache來進行緩存的動作,如果是已經有取得過的資源,就不會再重新拉一次資料。
靜態HTTP伺服器
如果有一些靜態資源,也可以放到Nginx裡面,透過發送指定的request,下去取得要的資源。這個也是我之前實務上有用過的用法,前端的一些靜態資源會被放到指定的Nginx裡面,當request path有對到對應的設定,就會到指定的位置取得靜態資源。
總結
Nginx是一個伺服器,但不只單純可以接收request和發送response的伺服器,還附帶多種用途可以應用,也是因為這樣,有很多人在使用Nginx。我自己碰過的寫法是用consul template下去寫,但這篇單純簡單地認識Nginx的部分,就不談詳細的內容怎麼寫了。
最後再來個接觸Nginx的心得總結!雖然自己目前還不是什麼Nginx專家,但是前端如果有去了解這部分,的確對於開發業務上有一定的幫助,也比較知道在發送request和接收response的這個過程,到底都發生了什麼事情。而且等到有理解到一些部分後,腦海中就比較好把這些偏抽象的概念轉成畫面。所以如果跟我一樣原本只專注在純前端的技術,對於偏向伺服器的這部分內容不是很了解的朋友們,就非常推薦去玩玩看Nginx,一定能讓打開自己的視野喔!XD

好啦!這次小小的學習筆記就到這裡囉!掰掰~
(繼續閱讀...)
文章標籤

文科少女寫程式 發表在 痞客邦 留言(0) 人氣(84)

  • 個人分類:其他領域學習筆記
▲top
  • 3月 14 週二 202322:20
  • 【LeetCode刷刷】Two Sum

image
這幾天接受了白板題的小測驗,解了一道題,其中提出這題測驗題的大大也分享了他的解法,回到家後,自己也嘗試了一下他給的更好的解法,這邊也來稍微紀錄一下。
首先,一樣先看題目內容

題目需求
從陣列中取出加總起來的合可以等於第二個參數的兩個數字,並返回它們在陣列中的index。
解題過程
在現場我想到的方向如下:
第一個方向 - 先排序陣列,讓他可以從小至大排列,用兩個個pointer,一個從頭開始移動,一個從尾開始移動+ 迴圈來檢查哪兩個數字的總合等於第二個參數。
但是!!回家重新復盤檢討後,才發現這麼做並不是正解!!
發現到的問題是「因為我有重新排序,所以出來的index會是錯的。」
雖然這個做法的確可以找出可以加總出正解的兩個數字,但是最終回傳的index並不是正確的。
我自己檢討的時候還有針對這個方向做修改,修改方式就是複製出一個陣列做排序。

但是!!這樣做還是有問題,因為如果陣列內對應到正確整合的兩個數字是同一個數字的話,用indexOf回找數字的index只會找到排序第一的數字,也就無法return出正確的答案。
第二個方向 - 不做排序,透過數字差下去找另一個數字的位置。
這個方式是當天出題大大給我一些小提示後,又想到的方式,但是因為一樣有用indexOf去找數字的index,所以一樣會有方向一檢討後調整解法的問題。
第三個方向 - 效率比較差的雙迴圈的方式。
這是另一個我自己在家檢討的時候,想到的方式。雖然因為跑了兩個迴圈,時間複雜度變成O(n^2)了,整體效率比較差,但至少有先達成這道題的目標答案。
外圈從頭開始跑迴圈到倒數第二個數字,內圈從第二個數字跑到最後一個數字。
第四個方向 - 只跑一次迴圈,並且用查找效率較好的物件儲存扣掉當前遍歷到數字後,還剩餘多少的數字和當前遍歷到的數字index。
詳細把程式碼實作出來後,只需要跑一個迴圈,整體效率比較好,且可以達到這題需求的解法其實還是當天出題大大最後提點我的解法。
這裡也將完整的程式碼實作出來如下:
每個小步驟的說明
1. 準備一個拿來存[target - 當前遍歷數字]剩餘數值和當前遍歷數字index的空物件。
2. 跑一個for迴圈,每跑一次都會去計算遍歷到的當前數值還差多少可以達到target數字。
3. 如果temp裡面沒有對應到的剩餘數值的話,意即如果去查找temp物件,返回undefined的話,就把當前數字差多少的數值和當前數字的index放進temp物件裡面。
4. 如果從temp中查有查找到對應的剩餘數值,而且存儲數字的index和當前跑到的數字index不相同的話(因為不能自己跟自己加總),就返回自己的index,儲存當時數字的index。

這樣就完成了!感謝那位大大當天最後的提點,讓我學到一個很不錯的解法。
 
(繼續閱讀...)
文章標籤

文科少女寫程式 發表在 痞客邦 留言(0) 人氣(40)

  • 個人分類:LeetCode刷刷
▲top
  • 2月 25 週六 202313:25
  • 【前端新手日記】React.js學習筆記 - 有點像Vue computed的useMemo

自己平常在寫Vue的時候,其實很常會使用到computed。因為當自己只是要一個被處理過後的值,在它被處理的過程中,又有一些相依的值時,就會使用computed。正確使用的話,不僅比較能節省效能,在程式碼的閱讀上,也更能一目瞭然地看到整體邏輯。因為實在是很愛使用computed(?),在碰React的時候,也在想是不是在這樣對應的情境中,也能有類似computed效果的東東可以用?沒想到真的有耶!那個東東就是useMemo。
在進入今天的正題-useMemo之前,先來回顧一下Vue世界的computed。

Vue 的 computed
使用方法(以Vue3為主)
- 單純使用get:當有相依的變數有變動時,就會重新計算最後的結果值。但若相依的變數沒有改變,就不會重新計算。
*這裡還有一個重點是「這個值如果沒有使用在template上或其他的邏輯中,即使相依的值有變動,也不會重新計算」。
carbon (16).png
- 搭配set做使用:變動計算後的值時(例如範例的full name),會觸發setter,若沒有設定setter,直接對計算後的值進行變更,會跳出錯誤(this._setter is not a function)。
需要直接操作到計算後的值時,就需要把set的部份加上,如下範例。
carbon (19).png

React的useMemo
使用方法
可以帶入兩個參數,第一個參數是一個寫著計算內容的callback funtcion,第二的參數則是一個陣列,可以內含有相依的變數。
carbon (17).png
當沒有帶入第二個參數時,不管實際相依的參數有無變動,每次渲染時,都會重新跑一次useMemo,重新進行一次計算內容去產生新的值。
當帶入的第二個參數為空陣列時,則只會在第一次整個DOM渲染完成時跑一次計算產生出值,並記錄下這個值。
當第二的參數的陣列中,有帶入值時,在整個DOM渲染完成後跑一次計算產生值後,只會在這些陣列裡的值有變動時,才會再次重新計算並產生新的值。
*與Vue不一樣的地方是「就算useMemo計算後的值沒有用在畫面上,也沒有被使用在其他邏輯中,只要第二的陣列參數裡的值有變動,一樣會進行重新計算的動作」。

關於computed & useMemo的優點&缺點
優點
- 避免不必要的重新渲染
有別於一般的function,不會在每次畫面重新渲染時都重跑一次對應的function,只會在相依的值有改變時,才重新進行計算,也就能減少不必要的重新渲染。
- 避免太複雜的邏輯在不必要的狀況下重新計算

缺點
- 使用時需要注意相依值,才能真正避免重複被計算太多次。
- 過度使用或使用不當,反而有可能會造成效能問題。

總結
最後也來個不專業比較圖做個總結吧!
image
雖然在Vue世界和React世界中,實務上對於這兩個類似的用法的使用情境應該會有些許差異,但某些程度上,這兩個用法使用的目的上還是有雷同。當有合適的情境出現時,就可以考慮要不要用這個方法。
好啦!這次的學習紀錄就到這裡啦!
(如果有誤解的部分,都歡迎跟我說)
打完收工!
(繼續閱讀...)
文章標籤

文科少女寫程式 發表在 痞客邦 留言(0) 人氣(24)

  • 個人分類:前端新手村
▲top
  • 1月 08 週日 202322:00
  • 【JavaScript萌新筆記】var、let、const和function的hoisting

JavaScript的hoisting這個特性在初學時期可能會偶爾不小心碰到,但不太會有什麼深刻的感受,或是不知道原來這就是hoisting。但是近期參與重構主題的讀書會,有討論到一些寫法和hoisting這個特性有關,才發現其實這個特性其實真的很需要好好認識,加上前陣子因為一些面談的過程,發現自己其實對這個概念有些錯誤的理解,所以就想說來好好地再幫自己釐清和整理一些這部分的必懂常識囉!
什麼是hoisting
首先,不免俗地要來說文解字一下!直接看字面的話,沒有什麼花俏的說明,hoisting的字面意思就是「提升」。再深入一點理解,就會是「提升」某些東西,某些東西被「提升」了。看起來好像很廢話,總之就是「提升」。
進到
MDN看一下更詳細的說明吧!
image
從上述這段說明可以看到關於「提升」的關鍵句子,也就是"move the declaration of functions, variables or classes to the top of their scope",大致上的意思就是是「函式、變數的宣告會被提升到作用域頂部」。

如何產生hoisting
雖然前面的那句話已經解釋了何謂hoisting,但是老實說如果還沒有深刻透過實作來理解的話,可能還是很難單單透過這句的說明就掌握到什麼是hoisting。在進一步看宣告會被hoisting的對象之前,先來從另一個角度了解hoisting是如何產生的吧!
這部分要回到最根本去理解JavaScript建立執行環境的過程,JavaScript在建立執行環境(Execution context)時,主要會分為兩個階段:創建階段(Creation Phase)、執行階段(Execute Phase)
第一個階段、創造階段
在這個階段主要會做以下幾件事情:
- 在記憶體中幫變數、函式建立一個空間,這就是和這次提到的hoisting有關的部分。
- 將全域物件(Global Object)、this設定到記憶體中
- 建立外部環境(Outer Environment)
第二階段、執行階段
在這個階段會逐行執行程式碼,並編譯成電腦懂的內容,如果在執行程式碼的時候,找不到當下程式碼中要使用的變數,就會往一層一層往外找。
(繼續閱讀...)
文章標籤

文科少女寫程式 發表在 痞客邦 留言(0) 人氣(46)

  • 個人分類:JavaScript初體驗
▲top
  • 12月 31 週六 202223:30
  • 掰掰2022!流水帳回顧文


轉眼間,一年就又要過去了!今年好像過得特別快,總覺得自己好像沒做什麼事情,但又好像做了特別多事情。
廢話不多說,直接來篇回顧文,記錄一下這一年的豐功偉業(咦?)吧!

關於生活
image​
這一年生活平平淡淡,但還是發生了一件讓我很難過的事情,就是我最愛最愛的寶貝因為生病,在2022年中忽然離開了我們,本來以為她還會陪我好久好久... 。那時候剛好是疫情期間,所以我也比較少回家陪她,現在想起來真的覺得很難過,現在還是很想她,很想要抱抱這個又黑又可愛的寶寶,但卻只能看她的照片想念她。不過也因為這件事,讓我明白應該要好好珍惜跟家人在一起的每個時光,也得好好陪陪現在還在家裡耍屁的另一個白色寶寶。
真的真的還是每天都很想我最愛的小寶妹><
image​

關於工作
2022是自己轉職前端工程師的第二年,對於在現在這間公司的工作內容,基本上已經非常熟悉,也沒有一開始轉職時,那種和大家格格不入的感覺了。雖然還有很多需要補強的地方,但也感受得到自己有不少成長,看的技術知識多了,能和身邊工程師朋友聊的東西也變多了。除了前端基本的技能外,甚至還碰了一些nginx、docker、CI/CD,每次在Jump Server做一些nginx的改動,打打指令的時候,都覺得自己變得更像一位工程師了,雖然一樣還是初階工程師的程度啦XD
這一年除了需求開發外,也做了很多自己覺得還滿進階的工作,像是和同事一起規劃重構(雖然應該只能碰到前期規畫了),了解一些設計架構,例如:DDD、前端效能優化。接下來新的一年,目標轉換到不同的產業擔任前端工程師,也希望自己能有機會轉成寫React的工作,更期許自己能在新的一年變成更厲害的前端工程師,不要什麼技術都只是半調子。

關於新嘗試
2022大概年中到年底的時間有做了一些很不一樣的嘗試,雖然把自己搞得有點在瞎忙,但也的確有一些不同的感受和收穫。主要有以下幾個新嘗試 : )
- 參與Podcast的訪談
image​
今年收到朋友的邀請,去參與的一集Podcast的訪談,簡單聊了一下自己從遊戲業的翻譯、營運PM轉職成前端工程師的一些小心得,真的想都沒想過自己可以出現在Podcast中,也很感謝我的強者朋友找我上她的節目。

- 成為ALPHA Camp助教
在從AC畢業之前,就有想過等到自己在業界一段時間後,就要回到AC成為助教幫助其他跟自己一樣想要轉職成工程師的人。雖然在應徵助教前,自己還是有很多擔憂,但最後還是鼓起勇氣踏出這一步了。除了批改作業外,自己更喜歡的是透過review大家的ORID,分享自己的學習經驗,和給大家一些心理層面的鼓勵,因為以過來人的角度來看,真的很需要這個部分的支持。未來也希望能在前端領域中,給初學的大家更多的幫助。
- 主持工作坊
老實說我是一個內向人,真的很不擅長說話(但又很愛說話XD),就是那種只要在很多人面前說話,就會開始有點語無倫次的人。所以當初被詢問要不要擔任工作坊host的時候,我真的很驚訝,但是最後還是決定接下來,主要是因為覺得自己也許可以趁著這個機會,讓自己習慣在大家面前說話。另一方面也是因為自己很自虐,很喜歡挑戰新的東西,所以猶豫了一陣子之後,還是給它接下來了,在12月中,還嘗試了另外一場工作坊的主持。雖然還有很大的進步空間,也還是邊抖邊說話,但是每主持完一場,也感受到了一些成就感。
- 分享轉職心得
除了主持工作坊外,11月也很意外地被AC找去分享了轉職的心得,雖然我分享的內容,大多都偏向於心理層面的內容,但我想應該還是可以幫助到一些人。這樣的分享會,也是我想都沒想過嘗試。
- 加入TYCIA
今年因為朋友的推薦,意外加入了一個非營利組織,成為TYCIA講師平台的RD成員。雖然自己菜到幫得到的忙有限,但是還是有幫忙打打雜,完成一些簡單的功能,也是一個在下班時間之後,很不錯的體驗。
關於學習
- React
因為真的很想轉換成寫React,所以還是有斷斷續續地針對React做學習。雖然還沒有用React完成一個比較大的作品,但有做一些小東西,像是倒數計時器(碼表)。
- Nginx
2022年上半年為了要進行公司內部前端專案的拆分,在學習Nginx上,花了不少的時間。雖然現在依然不是什麼Nginx達人,但是現在要改動Nginx,也真的比較有概念。也許換一間公司,可能再也碰不到Nginx,但是學了Nginx之後,對於跟前端有關的資源都是怎麼取得的部分也有了更進一步的了解和認識。在這個學習的過程中,老實說還滿痛苦的,回想年初的時候,幾乎每天都跟同事在那邊你問我、我問你,一起每天充滿問號,但是現在真的比較沒有這樣的感覺了,上手很多。可以大聲說!我再也不怕Nginx這個傢伙了!哈哈哈!
- 英文
2022下半年自己對於英文學習,也還算密集和規律。除了有上了幾上獻上一對一的課程,還有買了一些需要付費的英文學習APP及單次購買的線上課程來看。每天這樣讀一點,雖然口說還是亂七八糟,但還是有學到不少更口語化、更生活化的用法。
關於社群活動
想成為工程師的其中一個原因就是很嚮往工程師生態中的社群活動,今年也大概是我參與最多社群活動的一年,其中又有不少實體的活動。
- 讀書會
image​
2022一樣跟了一波PJ大大的讀書會,但是這次自已沒有分享什麼主題,只當了伸手牌,聽大家分享。不過明年的梯次,自己就不會再當伸手牌了,會再嘗試讓自己分享一些內容。今年其中一場還是實體的讀書會,感覺很像是跟網友見面的活動XD

- MOPCON實體技術年會
image​
其實去年就有參加過線上的活動了,這次更是瘋狂到直接殺去高雄參加,聽了很多自己想聽的主題,也聽了一些自己聽不懂的主題,雖然沒有額外認識到什麼新朋友,因為是跟認識的朋友一起去聽,但是這樣的獲得還是讓自己收穫滿滿,這次也有把一些自己聽到的新東西到回去跟同事分享。

- 當我們同宅一起(女生工程師為主的實體交流活動)
這場活動很特別地以女生工程師為主,雖然當天還是有不少男生參與,但女生比例的確比很多工程師相關的活動還多上很多。從這場活動中,也認識了一些人,看到了一些自己沒看到過的世界。
2023年的展望及目標
回顧完自己的2023年後,不免俗的要給自己一些新年目標,讓自己能夠變得更好。
- 程式學習
程式學習部分,目標讓自己不只把程式寫對,還要把程式寫好,也要培養自己詳細閱讀官方文件及原始碼的能力。
- 語言學習
在語言學習的部分,主要分成兩種語言的學習,一個是英文、一個是泰文。
英文的部分預計會替自己安排完整的線上課程學習,來加強聽和說的能力,也會以考試為目標做學習。在提升到一定程度後,除了想要去把大學時期沒考好的多益考好外,也會去參加練習口說的活動。
泰文的部分則是會讓自己把已經買好的線上課程上完,目標是看得懂大部分的泰文字。

- IT鐵人賽挑戰
這是我一直想參加,卻又提不起勇氣參加的挑戰,但2023年我一定要逼自己參加一次,因為不論寫出來的內容如何,我覺得對自己都會是一個很有收穫的挑戰。(其實主題已經想好很久了XD)
- Side Project開發
今年其實沒有做什麼新的side project,2023年還是希望自己至少能有做2個左右的完成品出來,讓自己下班時候,還是維持一定的手感在程式上,也讓自己對於寫程式這件事維持一定興趣,畢竟做自己的東西一定還是會比工作相關的東西還要有趣。
- 其他
除了一些學習面的目標,當然還有泡芙人一輩子都會有的目標,就是減脂ㅠㅠ。2023會再替自己規劃更有效率且完整的運動計畫,以及飲食計畫。雖然今年一整年基本上我平日每天都有去重訓,但其實整體的質和量還是需要調整,飲食部分也需要再好好規劃才行呀。
(繼續閱讀...)
文章標籤

文科少女寫程式 發表在 痞客邦 留言(0) 人氣(51)

  • 個人分類:
▲top
  • 11月 13 週日 202208:28
  • 【LeetCode刷刷】 Move Zeroes(移動數字零)

image
許久未寫LeetCode刷題筆記了,趁著這次參加一個小考試的機會,來自己回顧檢討一下自己的寫的這道題。
看一下題目內容
題目需求
要將陣列中的數字0全部都排到陣列最後面。
解題過程
我總共想了兩個方向的作法:
第一個方向 - 用一個pointer + 迴圈來檢查是不是0,並且進行splice和push的動作。
用while迴圈逐一去比對陣列每個數字,當發現是0的時候,就把這個數字拿出來往後放。
但是!!又把它拿出來檢討後,才發現這麼做其實會有一個問題!!(思慮不周的我,還以為這樣就完美完成,然後就這樣把答案交出去了QQ)
發現到的問題是「因為陣列的排序有變動,如果在這個狀況下跑迴圈,會有漏檢查的數字。」
例如:
目標排序陣列為[0, 0, 1, 0]
index會在第一次排成[0, 1, 0, 0]後,被+1,但是這樣就檢查不到原本index為1的數字,如果原本index為1的數字又剛好是0的話,就無法達成這題的需求。
為了解決這個問題,我又改了一個寫法。

但是!!又發現一個問題,這個做法會造成太多多餘的迴圈檢查步驟,讓時間限制超過。
第二個方向 - 用insertion sort(有兩個pointer)的方式進行排序。
因為上面的方向都沒有找到比較完美的解法,所以就又回頭去複習一下之前學的演算法內容,找到了一個比較合適的方法「insertion sort」,整體的實作方向用文字來解釋的話,就是「往後找出不等於0的數字,與數字0交換位置」。
每個小步驟的說明
1. 準備兩個pointer(我這邊命名為leftIndex和rightIndex),兩個都是從陣列的index 0為起點。
2. 一開始pointer還在相同起點時,如果指到的數字為0,rightIndex會被+1,目的是繼續往後查找不為0的數字;如果數字不為0的話,就存下rightIndex的數字,與leftIndex的數字做交換,目的是將不為0的數字往前排,排定過後需要把rightIndex和leftIndex都+1,目的是要能繼續往後檢查還沒排定的數字。
3. 整體步驟以迴圈來進行,當rightIndex等於array長度就不要再繼續做檢查的動作,也代表每個數字都檢查過一次了。

完整程式碼內容
方向二初版

方向二優化版
(繼續閱讀...)
文章標籤

文科少女寫程式 發表在 痞客邦 留言(0) 人氣(72)

  • 個人分類:LeetCode刷刷
▲top
  • 11月 12 週六 202208:54
  • 【JavaScript萌新筆記】Map不是map - 認識Map這個物件

map這個陣列的操作方式,只要從超級新手升級到初階新手,基本上都知道。但是說到Map這個東東,可能就有些人本來沒看過了。沒錯!!就是我!!!這邊說的就是我!!!!學藝不精的我本來沒看QQ
不過本來沒看過沒關係,現在看過了,那就花點時間把他是什麼給搞懂吧!
Map是什麼?
【JavaScript萌新筆記】Map不是map - 認識M
(繼續閱讀...)
文章標籤

文科少女寫程式 發表在 痞客邦 留言(0) 人氣(32)

  • 個人分類:JavaScript初體驗
▲top
  • 10月 02 週日 202200:00
  • 【社群活動】ALPHA Camp X Amazing Talker 分享&交流&企業參訪

圖片
這禮拜四(9/29)又參加了一場ALPHA Camp主辦的線下的活動,比較不一樣的是這場活動主題是企業參訪,還結合一些交流討論的環節。另外,最令人矚目的就是這場企業參訪的合作企業是大家應該都聽過的AmazingTalker,並請來了創辦人和CTO跟大家分享!身為使用者的我,當然不能錯過這次的機會,手刀給他報名起來了。
除了參與這次的活動外,還收到了一個特別的任務,就是擔任討論環節其中一組的Group Leader,這個角色是主要任務是帶領大家進行討論。雖然我是一個極度內向的人(咦?),但是喜歡挑戰的我還是接下這個任務了XD

活動參與對象
ALPHA Camp學生、校友、助教
活動內容
除了聽創辦人以及CTO分享一些關於AmazingTalker的介紹外,還有參與這場活動的AC學生、校友、助教,以及AmazingTalker工程師們的交流討論,另外,剩下的時間就是企業參訪,參觀AmazingTalker的辦公室。
實際活動流程
(繼續閱讀...)
文章標籤

文科少女寫程式 發表在 痞客邦 留言(0) 人氣(40)

  • 個人分類:
▲top
  • 9月 18 週日 202215:00
  • 【前端新手日記】React.js學習筆記 - React的useRef vs Vue3的ref

在學習React的時候,有發現一個hook跟Vue3世界裡面一個很重要的api的名字很類似,那就是useRef。雖然React的useRef因為名字的關係,看起來好像跟Vue3的ref是一樣的東西,但是仔細了解之後,才發現並不是這樣的呀!
Vue3 vs React
Vue3 - ref
其實Vue3的ref會比較像是React的useState,因為主要是在處理state,讓state的更新變得更方便,使用上跟data有關。不過除了這個主要的用法外,還有儲存DOM元素來操控的使用情境,這部分就稍微和React的useRef有點相似。另外,一個比較需要提的部分是「Vue3世界中,被用ref宣告的state如果使用在畫面上,當這個state有變化時,會讓畫面重新render」。
使用方式
宣告一個帶響應式的state,只要用以下的方式即可。
ref()可以帶入預設值,下圖預設值為"text"。
carbon
(繼續閱讀...)
文章標籤

文科少女寫程式 發表在 痞客邦 留言(0) 人氣(36)

  • 個人分類:前端新手村
▲top
«1234...12»

個人資訊

文科少女寫程式
暱稱:
文科少女寫程式
分類:
數位生活
好友:
累積中
地區:

熱門文章

  • (27,166)【JavaScript萌新筆記】console.log到底是蝦米東東?
  • (6,281)【前端新手日記】CSS的row?column?傻傻分不清楚
  • (1,373)【前端新手日記】我就廢-自我挑戰紀錄:模擬電腦桌面
  • (991)【JavaScript萌新筆記】while迴圈練習題 - 限制10次內猜對數字的練習
  • (736)【前端新手日記】網頁開發必學!排版神器CSS-Flexbox
  • (229)【新創人森紀錄】什麼是新創公司?成為元老級員工初體驗
  • (200)【JavaScript萌新筆記】資料管理結構 - 陣列(array)的存取方式
  • (152)【課程學習心路歷程】這一個月的學習回顧-ORID
  • (107)【JavaScript萌新筆記】「事件迴圈 Event Loop」學習筆記
  • (85)【新創人森紀錄】五個月後的新創職場心得 - 新創不是人人都做得了

文章分類

toggle 打工仔人森 (3)
  • 菜逼八工程師心情雜記 (9)
  • 新創人森紀錄 (2)
  • 黑白的求職之路 (6)
  • 社群學習 (3)
  • LeetCode刷刷 (4)
  • 其他領域學習筆記 (5)
  • 抱佛腳學前端 (2)
  • 菜鳥Git學習筆記 (1)
  • 亂亂寫程式筆記 (15)
  • 關於學習的心路歷程 (4)
  • JavaScript初體驗 (23)
  • 前端新手村 (36)
  • 未分類文章 (1)

最新文章

  • 【JavaScript 萌新筆記】JavaScript 模組系統 - CommonJS 和 ES Module
  • 【前端新手日記】Tree Shaking 也許沒有真的 shaking 起來
  • 【前端學 Docker 】 不是圖片的 image- Docker Image
  • 【亂亂寫筆記】詐騙案例 - 用你信箱寄信警告信箱被盜用
  • 【前端新手日記】網頁渲染模式 - SSG、ISR
  • 【前端學 Docker 】 從認識 Container 開始
  • 【前端新手日記】網頁渲染模式 - CSR vs SSR
  • 【亂亂寫筆記】VS Code - ESLin 應出現的警告提示未顯示
  • 【JavaScript 萌新筆記】JavaScript 的內部插槽 (internal slots) 和內部方法 (internal methods)
  • 【前端新手日記】React Component - <Component />及Component()的寫法差異及效能優化技巧

最新留言

  • [25/05/23] 文科少女寫程式 於文章「【JavaScript萌新筆記】cons...」留言:
    你說的單引號是指 '' 嗎? 如果寫成 '123' 型別就...
  • [25/05/20] 訪客 於文章「【JavaScript萌新筆記】cons...」留言:
    請問使用字串的時候=後面的數值也要加單引號嗎?...
  • [24/09/23] 【讀書心得】華爾街命運之輪 於文章「【亂亂寫筆記】VS Code - ESL...」留言:
    good~~~!...
  • [24/05/03] TurboSmooth 於文章「【JavaScript萌新筆記】Map的...」留言:
    學習到了~!...
  • [23/01/11] c323274 於文章「【我是前端工程師!?】文科少女的前端工程...」發表了一則私密留言
  • [22/09/23] 王韋 於文章「【我是前端工程師!?】文科少女的前端工程...」發表了一則私密留言
  • [22/09/14] 王韋 於文章「【我是前端工程師!?】文科少女的前端工程...」發表了一則私密留言
  • [22/08/12] 魯蛇的大兵日記~ 於文章「【前端新手日記】React.js學習筆記...」留言:
    最後一張動圖好像放錯ㄌ,跟修改前的結果似乎沒有變。 然...
  • [22/04/12] 訪客 於文章「【JavaScript萌新筆記】條件判斷...」留言:
    回饋您這方面資訊,我是從 PTT搜尋引擎的排名,看...
  • [22/04/07] flymayday112 於文章「【前端新手日記】Vue.js學習筆記(1...」留言:
    讚一個...

動態訂閱

文章精選

文章搜尋

誰來我家

參觀人氣

  • 本日人氣:
  • 累積人氣: