or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
Web 第十一週社課
tags:
Web
Javascript
前端
tcirc39th
社課
臺中一中電研社
社網:tcirc.tw
online judge:judge.tcirc.tw
IG:TCIRC_39th
本次社課實作
社課範例網站
.html
,.css
,.js
檔。Javascript
簡介
基本用法
javascript的各種語法與C++極為相似,故以下只會簡單帶過一些基本語法,其他若有需要使用自己google。
在HTML中使用
註解
輸出
用
console.log()
或者alert()
兩者輸出的方式不一樣,前者會在console,後者會在視窗上。alert
彈出彈出式視窗,括號內放要顯示的訊息
如:
變數
js的變數有七種型態:布林(Boolean)、空(null)、未定義(undefined)、數字(number)、字串(string)、符號(symbol)和物件(object),可以透過
typeof()
函式來查看。宣告
在宣告時不須指定資料型態,而是透過
var
、let
、const
來宣告。var
:宣告可隨意更改其內容的變數let
:宣告可隨意更改其內容的區域變數const
:宣告一個只可讀取的不可變常數盡量用
let
跟const
就好,除非有特殊需求,var
的變數較容易runtime error且有較多資安漏洞。動態型態
js當中的變數型態是動態的,所以可以給相同變數不通型態的值,且變數型態會自動改變不會出錯
運算
基本上跟C++或python都一樣,簡單帶過。
陣列
就是陣列,但因為js是動態型態所以陣列裡可以放不同資料型態的變數。可以透過
push()
、pop()
、shift
、unshift
從前後刪除及加入元素,陣列大小也會自動改變。if else
就是if else,跟C++很像
判斷式
又跟C++一樣,有
>
、<
、>=
、<=
、==
、!=
、===
、!==
,一樣可以用&&
、||
串接。`==` v.s. `===`
==
===
while
又又跟C++很像,直接看程式碼
for
又又又跟C++很像,一樣直接看程式碼
function
js中的函式用
function
宣告匿名函式
匿名函式(Anonymous Function)是指無需定義函式名的函式,在js可使用
=>
簡化,常見用於當參數且不需要再使用第二次的函式,後面DOM再看範例。物件(object)
宣告及使用
DOM(Document Object Model)
把所有HTML的文字、Tag等所有東西定義成物件
來源:https://www.w3schools.com/js/js_htmldom.asp
Document
這份文件
Element
每一個Tag
Text
被Element包起來的文字
Attribute
Tag內的相關屬性
window
所有物件都在此物件底下如:
window.document
、window.alert
…document
代表的就是這份HTML檔
document.write
在當前檔案覆蓋文字
prompt
彈出一個輸入用於輸入的彈出式視窗
如:
也可用變數接收
如:
ID
在HTML Tag上加上ID來進行標記
document.getElementById()
取得此ID的Tag,可以將此視為該物件
.outerHTML
更改含此id的Tag,有資安漏洞
.innerHTML
只更改內部內容,不含此Tag,有資安漏洞
.textContent
只更改內部文字,不更改Tags
document.querySelector()
不只可以選擇id也可選擇class,不過注意要用CSS的選擇方式
如:
Node
parentNode
目標物的父節點
childElementCount
可以計算有幾個標籤子節點
childNodes[]
內部的所有東西包含Tag、文字、註解都是物件,多行文字只要中間沒被其他東西截斷都是同一個物件
由上而下一樣從0開始算
firstChild
目標物的第一個([0])子節點
firstElementChild
目標物的第一個標籤子節點
lastChild
目標物的最後一個([n-1])子節點
lastElementChild
目標物的最後一個標籤子節點
previousSibling
前一個兄弟節點
previousElementSibling
前一個標籤兄弟節點
nextSibling
後一個兄弟節點
nextElementSibling
後一個標籤兄弟節點
nodeType
會回傳Type的代碼
nodeName
會回傳node的名稱如
#text
、#comment
、BODY
…nodeValue
會回傳node的值
詳細
結果:
createElement()
新增一個指定種類的Element
createTextNode()
製造一個文字節點
appendChild()
在指定的節點下新增一個子節點
insertBefore()
在某個元素前插入一項物件
範例:
DOM event
DOM event定義了很多事件讓js可以監聽和處理
如果在HTML的Tag內使用前面要加上on
addEventListener()
在於在js監聽事件
click
偵測左鍵按下並彈起
dblclick
偵測滑鼠快速連點兩下
mousedown
偵測左鍵按下
mouseup
偵測左鍵彈起
mouseover
偵測游標置於區塊上方
mouseout
偵測游標離開區塊上方
load
當載入網頁時會觸發
unload
離開或重整網頁時會觸發
或
參考資料
https://ithelp.ithome.com.tw/articles/10191970
https://developer.mozilla.org/en-US/docs/Web/API/Node
https://www.w3schools.com/jsref/
Q:如何公開自己的網頁
A1:架設自己的伺服器
具體要怎麼操作呢?直接看別人寫的文章(別人寫的比較好
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →Frank's 資訊科技潮流站
聽起來好麻煩還要花錢,有沒有其他更簡單便宜的方法?
A2:github
完全免費而且只需要按幾個按鈕就好了
詳細作法: