什麼是Javascript ?
1. Javascript的介紹
在還沒接觸JavaScript的時候一直以為他與Java應該有什麼關聯,殊不知這是一個天大的誤解,Java和 JavaScript雖然名稱相似,但卻是熱狗和狗的差別。JavaScript是一種直譯式、基於原型(prototype based)的物件導向程式語言,但又具有函數式程式設計(Functional programming)的特性。在過去的一段時間他都一直被認為是玩具語言,難登大雅之堂。但隨著版本的更新,加上搭配NodeJS,讓JavaScript成為排行榜上的紅人,除了網頁開發外,在許多的領域都可以看到JavaScript的身影。
2. Javascript究竟可以做什麼呢
JavaScript 是一種腳本,也能稱它為程式語言,可以讓你在網頁中實現出複雜的功能。當網頁不只呈現靜態的內容,另外提供了像是:內容即時更新、地圖交動、繪製 2D/3D 圖形,影片播放控制……等,你就可以大膽地認為 JavaScript 已經參與其中。
例如 : 按下按鈕後觸發事情 , 偵測到按下enter按鈕觸發事情 , 控制CSS , 驗證用戶輸入的內容等等..... , 太多太多了~
3. 使用方式
直接放在 <head></head>
<head> <script> alert('Hello JS'); </script> </head>
直接放在 <body></body>
<body> <script> alert('Hello JS'); </script> </body>
放在<html></html>外面
<!DOCTYPE html> <html> <head> <title>js測試</title> </head> <body> </body> </html> <script type="text/javascript"> alert('hello Js') </script>
引入在外部檔案
建立一個資料夾 , 在資料夾內建立兩個檔案 index.html 、 main.js
index.html
<!DOCTYPE html> <html> <head> <title>js測試</title> </head> <body> <!-- 引入JS --> <script src="./main.js"></script> </body> </html>
說明 : 引用JavaScript通常寫在<body></body>的最後面 ,因為瀏覽器渲染HTML文件是從上往下呈現的。先執行head標籤裡的內容,再執行body標籤裡的,一行行渲染下去。當JavaScript放在head裡面的話,頁面的下載和渲染都必須停下來等待JavaScript執行完成。JavaScript執行過程耗時越久,瀏覽器等待的時間就越長。
main.js
alert('hello Js')
4. 基礎語法
型態
number
NaN為number的特殊數值,NaN不等於任何值,NaN也不等於NaN,如果你要測試某值結果是否為NaN,則要用isNaN()函式。
var number = 10; // 宣告數值 parseInt("10", 10); // 將字串轉為十進位整數 NaN == NaN; // false isNaN(NaN); // true isNaN(1); // false isNaN('a'); // true
string
字串是基本資料型態,可使用單引號或雙引號來包括一串文字,用以表示字串。
var text = 'Hello JS'; // 宣告字串 text.length; // 8
bolean
布林值只有兩個值,true與false。
Boolean(false) // false Boolean(0) // false Boolean('') // false Boolean(null) // false Boolean(undefined) // false Boolean(NaN) // false // False Family Boolean(1) // true Boolean(true) // true
undefined
undefined是JavaScript中特殊的值,當你變數在初始的時候未給予任何值或試圖取得某個沒定義的變數(也沒指定null)時產生。
var abc; typeof abc; // undefined
宣告
var
JavaScript則為動態語言,其變數本身使用者無需宣告型態。
var JS = 1; JS = 'Hello';
如果沒有宣告var或是在全域使用var宣告皆會被判定為全域變數(window),也可以在全域範圍中使用this來取得。
js = 1; js; // 1 this.js; // 1
x在函式中使用var宣告為區域變數,但y並非使用var宣告,所以y是全域變數。
function func() { var x = 1; y = 2; console.log(x); } func(); // 1 //console.log(x); //錯誤 console.log(y) //2 console.log(this.y) //2
如果全域與區域中有同名的變數,則區域會暫時覆蓋全域。
var x = 1; function func() { var x = 2; console.log(x); } func(); // 2 console.log(x); // 1
陣列 Array
var array = [ 1, "JS", false, {'a':1}, function(){ console.log(123) } ];
物件 Object
長的會像是這樣 { key: value }
var person = { name: 'Giant', speak: function() { alert('Hello'); } } person.name; // Giant person['name']; // Giant
Function
//一般函數的兩種寫法 function Person(name){ return name } or var Person = function(name){ return name } Person('Giant')
DOM元素操作
簡單來說 DOM 可以利用 JS 來跟 HTML 文件進行互動
因為瀏覽器載入網頁會建立 DOM 樹,會包含各種節點,每個節點都是物件
程式碼會存取和變更這個 DOM 樹,然後改變就會反應在瀏覽器上(互動)
根據ID名稱選取
document.getElementById(elementId)
根據ID loaded
document.getElementById(elementId).value = 'hello world~'
根據ID取得值
document.getElementById(elementId).value
根據ID顯示
document.getElementById(elementId).innerHTML = 'hello world~';
根據Class名稱選取
document.getElementsByClassName(classname)
事件控制 Event Handle
onclick (按下事件 )
方法一 :
<html> <button id="btn" class="btn"/> </html> <script type="text/javascript"> document.getElementById('btn').onclick = function() { alert('Hello'); }; </script>
方法二 :
<html> <button id="btn" class="btn" onclick="func()"/> </html> <script type="text/javascript"> function func() { alert('Hello'); } </script>
keyup(按下事件 )
<html> <input type="text" id="fname" onkeyup="myFunction()"> <div id="print"></div> </html> <script type="text/javascript"> function myFunction() { var fname = document.getElementById("fname"); document.getElementById('print').innerHTML = fname.value; } </script>
說明 : 將打在input內的文字馬上顯示在下方
5. 常用的內建函式(function)
顯示一個警告對話框,包括一個OK按鈕。
alert("輸入錯誤");
顯示一個確認對話框,包括OK、Cancel按鈕。
confirm("確定否!");
返回此變數的長度。
math.length;
返回一個0~1的隨機數值。
Math.random();
回傳true or false,找值是否存在此陣列。
array.include("value");
回傳此值在此陣列的位置。
array.findIndex(index => index);
迴圈
array.forEach(i => console.log(i));
印出陣列
array.map(i => i);
方法可以藉由刪除既有元素並/或加入新元素來改變一個陣列的內容。
array.splice(index, 0);
可以將某些值加入到陣列的最後一個位置
array.push('value');
PS : 當然不只有這些function~ 我的話都是遇到問題的時候才上網查的~
引用網址 : https://medium.com/tkd-giant/javascript-%E5%85%A5%E9%96%80-84c4cb12d083
留言
張貼留言