js線上課程筆記

陣列的操作
push 跟 pop
舉例
var books=[“書本1″,”書本2″,”書本3”]
如果
books.push(“書本4”)
那陣列內容就會實質變動變成
[“書本1″,”書本2″,”書本3″,”書本4”]

如果再用books.pop()
這會把最後一筆資料移出,那陣列內容會變回
[“書本1″,”書本2″,”書本3”]

這兩的動作可以視為對陣列內容塞入最後一筆資料跟取出最後一筆資料,
所以都會異動到對陣列本體

Slice(開始,結束)切割
舉例
var numbers=[1,2,3,5,6]
他們實際儲存的位置為0,1,2,3,4,5
要注意Slice(開始,結束)裡面的開始結束,指的就是實際儲存的位置
然後切割出來的陣列,包含開始的資料,但不包含結束的資料
例如 slice(1,10),意思是從1開始,到10之前不包含10的資料。

所以如果是numbers.slice(0,2)
那取出的資料就是[1,2],不包含3
numbers.slice(-3,-2)
負數是倒數。倒數-3的資料是3,然後到-2停止,但不包含-2的資料
那取出來的資料就是[3]
number.slice(3)
那就是3開頭,沒有結尾。
那就是取3之後的資料。
取出的結果就是[5,6]

可以用在顯示前50筆留言。
例如假設有個留言陣列有1000筆是
message=[“a”,”b”,”c”,”d”,”e”,….]
那如果用 message.slice(0,50)
就是切出 0~49 位子的資料出來

Reverse 反轉
message.reverse()
就可以把陣列排序反轉。常用在留言,例如用時間先後排序。

Concat 接續
可以把兩個陣列接起來變成一個陣列
例如
var books = books1.concat(books2)
意思就是把books1後面接上books2,把接起來結果指定存到books陣列。

*****************************************

目前聽到課程第22單元的 6:55分。筆記之後會繼續補在這,最近在學js,強烈推薦hahow的「動畫互動網頁特效入門(JS/CANVAS)」,老師很厲害,抽象概念用舉例解釋得很清楚。

學js一些零碎筆記

用 sublime 練習,不想用 codepan。看教學影片提到可以用 console.log把運算結果先顯示出來,但是不知道在 sublime 上要怎麼叫出來。發現查這些東西真的要懂得怎麼用英文關鍵字找….後來打 sublime console javascript 才找到

這篇算寫得最清楚有圖文的:How to Create a Javascript Console in Sublime Text

要注意到語法上要改用 debug() 取代 console.log()

然後要執行就是按 cmd+B,程式碼執行結果就會在底下 console 視窗顯示

 

google map 改用 api方式嵌入

原因:幫客戶做網站,要嵌入英文版的地圖。原本先使用google map的嵌入語法。結果對方說我們看到的都是中文。雖然說只要對方語系會是英文就會自動轉,不過想說如果可以強迫轉英文是更好,客戶也比較沒得說嘴。所以就上網搜了一下。然後最近真的是覺得記憶退化嚴重,趁這次有做出來趕快紀錄一下,免得下次要用又要重來….

參考了這幾篇:

然後可以先比較一下google map平常提供的嵌入語法,是長這樣

<iframe src=”https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d3615.550013102598!2d121.5367189!3d25.015402!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0%3A0xec78966a3d7b4efc!2z5ZyL56uL6Ie654Gj5aSn5a2455Sf5ZG956eR5a246aSo!5e0!3m2!1szh-TW!2stw!4v1534244255311″ width=”600″ height=”450″ frameborder=”0″ style=”border:0″ allowfullscreen></iframe>

嵌入結果是這樣

API的嵌入語法則是長這樣

<iframe src=”https://www.google.com/maps/embed/v1/place?key=AIzaSyBOLwZNcRE9yn0-tythMMwX5OIkpEbpFWw&q=106台北市大安區舟山路237號(NTU Department of Life Science)&language=en” width=”600″ height=”450″ frameborder=”0″ style=”border:0″ allowfullscreen></iframe>

嵌入結果長這樣

參數說明:

sublime快速鍵紀錄

(用mac要把ctrl改成cmd)

ctrl 多選同時修改
游標先放在第一個要修改的地方,按著ctrl再點選多個地方,就會同時看到多個地方有游標閃爍,輸入文字就會同時在多個地方一起插入

ctrl+d
選一個字串,按著快速鍵就可以同時把畫面上其他地方這個字串一個一個選起來(按一次快速鍵就會選下一個)。
全部選起來之後可以一起編輯。(可用這個方式一定程度取代ctrl+f然後設定取代文字的功能)

ctrl+[ 跟 ctrl+]
記得要改英打輸入。把原始碼左縮排或右縮排。

ctrl+l
把同一行整行選起來(要刪除整行的話很方便),按多次就會一行一行一直往下選喔。

ctrl+/
把游標所在那行整行註解起來。如果選多行,就整塊一起註解起來

shift
點選後按shift可連續選取多行

【emmet】

標籤內文
如果要在標籤內文一起打。用{}把內文文字匡起來。
例如一個class名為.link的「立刻贊助」的連結可以這樣打
a.link{立刻贊助}

{}內的$應用
例如打
ul>li{預設選項}*10
展開的li內文字都會相同。但項目多這樣會分不清楚,
改打
ul>li{預設選項$}*10
展開的文字後面就會從1開始帶數字下去

圖片取代文字圖片超連結桌機可行但手機會無法點選之問題

<a>總統府</a>

a{
height:1px;
overflow:hidden;
padding:30px 0 0 0;
background:url(image/icon.jpg);
}

以上設定在桌機呈現上 a是可以點選的,滑鼠移上去整個padding的區塊也會是有hover效果、也可以點擊的。但是換成行動裝置(手機、平板),點選icon會沒有反應。也就是在行動裝置上hover的範圍只有height:1px;不含padding的範圍。

改成以下在手機上就可以點

a{
height:31px;
overflow:hidden;
text-indent:-1000px;
background:url(image/icon.jpg);
}

就是還是要用縮排的方式隱藏文字。