2019年10月17日 星期四

js學習 by value 、by reference

1. by value
    若設定一個純值 a=3, a=b
    a--->指向一個記憶體位置
    b--->創造一個新的記憶體位置,再填入3

    
    ---> 在 b=a 之後他們就沒有關係了,之後改變a值也不會對b造成影響
    --->result





2. by reference
    若是一個物件 a={}, a=b
    a--->指向一個記憶體位置
    b--->不會創造一個新的記憶體位置,而是跟a指向同一個記憶體位置


    --->因為指向同一個記憶體位置,改變a裡面的值,b也會跟著改變

    --->result

   -->若之後輸入b={};,則會創立一個新物件,就不再是by reference

js學習 函式

課程解析:    https://github.com/chyeh727/tut-snippet/blob/master/examples.js


課程網址:https://www.youtube.com/watch?v=gLX-KVq-6Kc&list=PLhW1K7xGelxefHXPDTfmXtJdyjhwGiXzK&index=9



1. 內建模組函式

    (1)Math.ceil(x)  ---> 取得一個大於or等於 x的整數中最小的一個

             Math.ceil(-1.5) ---->> -1

    (2)Math.random( ) ---> 取得一個大於等於 0 並且小於 1 的數   ( 0  <=  y  < 1 )

             Math.random( ) --->> 0.6849


2.函式 function

           function(   參數   ){   執行動作   };

   
      (1)定義一個匿名函式

    --->與(2)差別不大,只是用(2)一旦出錯,那個 stacktrace 會告訴你在哪個函式裡出錯。容易debug



      (2)直接宣告一個函式

    ---> 若console.log寫在return下方則不會顯示

   
      (3)參數 (ex: maxValue)

    ---> 能使code更有彈性

      (4) 執行函數裡可放另一組function

   -->result

   若用console.log
 
    --->result





3.可視範圍scope、執行環境excution  context、全域global


    結論: 當變數在執行環境找不到值時,便會往上一層找,直到找到為止

    (1)範例一

    --->在console.log中  who 在執行環境(function)找不到便往上一層(global)找到steph,
       n 在執行環境 (function)就找到了。
    --->結果:

    (2)範例2

    --->在console.log中  who 在執行環境(return function)找不到便往上一層,找到了Lebron,
          在執行環境 (return function)就找到了。
   ---結果:



    (3)範例三
       見https://www.youtube.com/watch?v=oSDyY8rItEE&list=PLhW1K7xGelxefHXPDTfmXtJdyjhwGiXzK&index=11
       13:11處


--->當Js看到宣告變數var, 他會在他的可視範圍內,將變數宣告var提到最上面,

      但宣告值留在原地


4. 函式裡的this

    *函式裡的this跟函式被呼叫的時候誰在焦點有關係
   *函式裡的this跟函式的定義位置無關

     (1)若完全沒有指定則會讀到全域

   ---> 使用"use strict"  嚴格模式,可避免此情形


    (2)呼叫特定函式的值



     1. 若想call出 myship 的值
                --->test.call(myship)
           --->myboat.Location.call(myship

        --->在函數前加 call ,並在參數中填入欲加入的物件 




    --->結果


5.call back練習


    --->當數到7時,執行callme這個函式
    --->同時callme這個參數填入為shout,印出"it's seven now"
    --->if是為了避免參數填入非函式時,錯誤執行

    --->結果

 6. 內建函式 setInterval、setTimeout     (  單位毫秒  )

        (1)setInterval  每幾秒做一次

                 setInterval(  執行函式  ,  間隔時間  )

        (2)setTimeout  幾秒後作那個動作

                 setTimeout(  執行函式  ,  間隔時間  )

js學習 hoisting

1. 匿名函式不會hoisting(提升)

--->result


若讓apple先執行

--->會出現 undifined is not a function
因為匿名函式不會被hoisting提升到記憶體,而var 會先被定義成undifined,


2019年10月15日 星期二

js學習 非同步callback

1.當執行堆處理完後,才會去執行件佇列



    --->最後才執行clickHandler
    --->結果

2 .強制型轉--->用來檢查a有沒有定義值

   if(  boolean  ){     };

若boolean值是:
    1. undefined 變成 false  
    2. Null 是 false.   
    3. 空字串 也是 false.
    4. a=0  也會是false  *注意:此時a有定義值卻是false 

   --->結果

   要解決a=0 會是false
   --->if(  a  ||  a === 0  )
--->

3. 強制型轉與運算子的互動


--->依邏輯來看應該是false,但less than 運算是    由左--->右


--->因此實際上是 console.log(  false  <  1  ),false會被強制型轉為0  (可用Number(false)檢驗)

* null 、 " "也會被強制型轉為0   3-25 ,8:00(強制型轉的危險)

-->解決: 使用  = = =

Js學習 JSON

JSON (js object notation)


1.與一般的JS不完全一樣,JSON格式較嚴格


2.兩者間的轉換

(1)物件轉JSON---> JSON.stringify(物件)


(2)JSON轉物件---> var 物件= JSON.parse(...JSON資料...)




















--->注意: 裡面的名稱要加  " "  ,外面加 '    '

--->結果


2019年8月26日 星期一

svg動畫 3種製作動畫的方式


1. 針對屬性作動畫
  • values="欲變化的數值;數值;數值"---->使用分號
  • repeatCount="次數"---->若欲無限,輸入indefinite
  • begin可以讓動畫延遲,秒數用負的表示0秒前就已開始動畫,解決會停頓的問題(參照#pic4)
  • 2. 位移動畫
  • 將欲位移的元素運用"group"包起來
  • type可填入scale、rotate等等
  • 3. CSS動畫
  • transform-origin控制動畫開始或消失的點
  • chrome讓動畫消失會以整個為基準,要輸入"transform-box: fill-box"讓動畫以該元素為基礎
  • 後寫的會蓋掉前面的,以#pic5的
          &:hover
             & .frame_outer....為例,
         若沒有輸入"transition-delay: 0s"那他會直接套用"transition-delay: 0.5s"
  • 2019年5月6日 星期一

    靜心冥想的練習2

            今日花了10分鐘練習靜心冥想,地點是在家裡的床上,當下外面還有施工的聲音,成效可能會有所打折。

            做在床上似乎不是個好選擇,床太軟了整個人會陷下去,以致背部挺直時,中背的部分有點緊繃與痠痛,靜坐的過程中一直聽到外頭的轟隆聲,但我還是盡力把思緒專注在呼吸上,10分鐘說快不快,到後來有點坐不住,很想知道時間到了沒有,幸好有走完全程。

            冥想完後睜開眼的一瞬間,會覺得看世界不一樣了,天花板的白色不再只是白色,每個物體都是獨特別具意義的存在,心中會充滿感恩,感謝爸媽讓我能住在那麼好的房子裡,感謝自己是那麼真實的活著,我是實實在在的、有血有肉。

            整個過程或許不夠盡善盡美,但這是個好的開始,我慢慢能體會到冥想的精神:慈愛、專注、寧靜。

    對你來說,打LOL的意義

            一直以來在是否要打LOL中煎熬,刪掉了無數次,但總是會在幾個禮拜內又載回來。追根究柢是我找不到一個可完全取代他的娛樂,每當我看完書回到家,看著數不清的youtube影片、逛遍了好幾個PTT的板,還是覺得少了些什麼,心裡總覺得不太踏實,沒有真正的達到放鬆的目的,過沒幾天又心癢難耐,最後在天人交戰下繳械,放棄自己的堅持,給自己「再一下下就好,打一下沒關係」的藉口,又重回召喚峽谷的懷抱。回歸後的幾天又因沉重的罪惡感,下定決心改頭換面,把LOL給刪掉,我就是如此陷入無法逃離的迴圈,想要改變,但卻猶豫不決,永遠都在與自己掙扎拔河。



            我能理解LOL無法帶給我任何東西,對我的人生也沒有幫助,但他就像刻印般的著實在我生命留下深刻的烙記,想甩都甩不掉他,已經成為我生活中不可或缺的一部份。我不是個很愛打遊戲的人,幾乎所有的遊戲都無法讓我留戀超過三個月,唯獨LOL陪伴我度過了無數孤獨的夜晚,參雜著朋友的歡笑與爭執,無數的回憶都在裏頭,就這樣度過了高中與大學的歲月,人家說7年之癢,但我卻對它情有獨鍾。


            我想深究LOL對我的生命意義,但每當想嘗試改變,他就像心魔般地湧現在我腦海裡,如惡魔向我招手,試圖把我拉向地獄的深淵,現階段來講,我不適合打LOL,原因在於我是個正在準備國考的人,我將生活規畫成早上到晚上9點是看書,回到家才放鬆休息,這樣聽起來打LOL其實不會太過分,畢竟一天打最多也才2~3個小時,關鍵在於只要下載遊戲以後,我便會從原本的1場、2場變成1~2小時,甚至在白天的看書時間我都會想打,每次到這個歷程都讓我相當難受,而後把遊戲刪掉;那將LOL刪掉之後的生活呢?我會發現我放鬆的時間多了很多,可以嘗試不同的興趣,但做完總是滿滿的空虛...大概一星期之後又會心癢難耐,想把LOL載回來,嚴重到會讓我整天都心神不寧,無法專心念書,以至於我無法衡量到底是打遊戲對我比較好,抑或是不打呢?


            想打的原因不外乎能跟朋友有所聯繫、放鬆、取得現實中無法得到的成就感、視覺的滿足感、空虛的生活等等,但這些其實能透過其他的活動來實現,不是必然要透過打遊戲來完成,唯獨現實無法取得的成就感,似乎沒辦法被取代。在遊戲中我是見神殺神的強者,與現實中失敗、痛苦掙扎的我有天壤之別,靠著遊戲我才能暫時逃離即將要就業的恐慌與無助,得到短暫的慰藉,但最近打遊戲越來越不能夠達成我所謂的「成就感了」,我漸漸的不玩那些飄逸而操作難度高的角色,轉而完一些我不愛但卻能穩穩拿到勝利的,每當完操作難度高的角色被打爆時,我就會越想把它完好,跟賭性有點相似,我就是要凹,不管要付出多少就是要把他打回來,所以反而玩了一場接一場,最需要的成就感卻沒有得到,這也是我最矛盾的地方,對我來說遊戲已經不能滿足我了,但我還是病態的玩著,希望得到救贖。


            要改變這樣的惡性循環,首重找到一個能夠取得成就感的休閒娛樂,最好能有與他人的互動,增加繼續實行的意願,同時也不會因為喜愛而過度沉迷,一直以來自己都會突然很迷一個東西,國中的全民打棒球、高中的信長、大學的LOL直到現在,其性質都是藉由打敗敵人,讓自已有覺得自己很強的錯覺,但現實中我已經與理想的生活越來越遠,簡單來說,或許我只是不想承認自己是個失敗的人,才會想緊緊抓住目前唯一能夠讓我感受到自己真實存在的事物吧。

    補充:我不想玩LOL還有一個原因在於,當我打不好時,我會摔鍵盤跟手機,之前還有過砸壞電腦兩次的經驗,我還是不要玩好了....對我的生活已經造成了危害

    這是最近看到兩篇關於沉迷與高強度休閒的文章
    高強度休閒

    沉迷

    2019年5月5日 星期日

    靜心冥想的練習

           最近覺得該練習如何讓心情平靜下來,已準備接下來的國家考試,於是在圖書館借了一本
                「靜心冥想的練習」,書裡介紹了冥想對日常生活的益處,和靜坐冥想的方法。

        翻了幾頁覺得滿想入手的,但又覺得能借到的書何必花錢買呢,於是決定將觀看後的心得
                       以日記的方式記錄下來,日後想要回顧冥想的方法要點時可以翻來觀看。


    如果想要直接練習冥想的話可以直接跳到61頁-------------------

            冥想給人的印象是與宗教有所連結,但其實不用信奉宗教也可以練習冥想,冥想是一個
       讓自己更察覺內在需求、情緒和動機的方法,更能提升注意力,對於靜心、專注很有幫助。

    若一開始很難靜下心,可以在冥想前,運用腹式呼吸法,吸吐3.4次後,
    慢慢的、自然的讓呼吸歸於平穩。找一個覺得舒適的環境,用打坐的姿勢,
    想像自己的脊椎像是一堆堆疊整齊的硬幣,
    自然的腰桿打直,用心感受每一個吸、吐。



    冥想的要點在於「專注於自己呼吸的每一個吸、吐」,
    在冥想的過程中會出現許多念頭、畫面,不帶批判的試著把這些念頭拋開,
    只專注在呼吸上,感受每一個呼吸從鼻腔進入,
    經過喉嚨、肺部最後到達腹部,你會感受到腹部的膨脹,用心體會呼吸進出的過程中,
    經過哪個身體部位時會讓你最有感覺,接著便專注在那個點上


    剛開始每周練習3次,一次5~20分鐘,冥想的練習是讓自己能夠專注在一件事情上,增加我們對自我的覺察。

    2019/5/5 天氣雨 晚上10:15

    vue的筆記

     目錄 //mvvm //綁定 //資料綁定的方式 //修飾符 //按鍵修飾符 //縮寫 //class 動態切換 //computed //表單裡各元素的v-model綁定 //元件: 能夠獨立儲存自己的狀態 //vue 的生命週期 //切換className的各種寫法 //v...