什麼是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

留言

這個網誌中的熱門文章

網頁入門教材目錄

什麼是HTML?

網頁是怎麼運作的呢?