JavaScript 學習(1)

參考資料:http://www.w3school.com.cn/js/index.asp
javascript

額,發現 http://www.w3cschool.cc 這裏的資料彷佛比上面那個更新鮮一些...php


1、教程html

    js是一種輕量級的編程語言,可插入html頁面中,並由瀏覽器執行。java

    (1)簡介
node

<script>
    document.write("<h1>標題一</h1>");
    function al(){
//        alert("button clicked.");
//        document.getElementById("aa").innerHTML = "<h2>O(∩_∩)O哈哈~</h2>";
        if(isNaN(document.getElementById("num").value)){
            alert("not num");
        }
    }
    function am(){
        document.getElementById("aa").style.color = "#006060";
    }

</script>
<input type="text" name="num" id="num" />
<input type="button" value="submit" onclick="al()" />
<input type="button" value="submit" onclick="am()" />
<div id="aa"></div>

    (2)實現express

// <script>標籤, 在html中,使用 。type="text/javascript",不用添加。JS是現代瀏覽器以及HTML5中的默認腳本。

// 向html中,輸入文本
document.write("<h1>This is a heading.</h1>");
// JS 函數和事件

<script>
    function myFunction(){
// 必定要注意id名字!!! 將demo寫成dome了 ...
        document.getElementById("demo").innerHTML="My First JS Function.";
    }
</script>
<div id="demo"> ... </div>
<button type="button" onclick="myFunction()">Try it.</button>

// 輸出
document.getElementById(id); // 來得到某個html元素的訪問 
innerHTML; // 獲取或插入元素內容

// 寫到控制檯
console.log("...") //

    (3)語句編程

// 瀏覽器會按照編寫的順序來執行每條語句。
// js對大小寫敏感

    (4)註釋json

// 第一種註釋方法
/*
第二種註釋方法
*/

    (5)變量數組

// 變量
var x = 2;
var y = 3;
var z = x + y;

// 聲明(建立)JS變量
var carname;

// 一條語句,多個變量
var name="Gates", age=56, job="CEO";

// Value = undefined;
var carname; // carname的值將是 undefined

    (6)數據類型瀏覽器

        字符串,數字,布爾,數組,對象,Null,Undefined

        JS擁有動態類型。相同的變量,可用做不一樣的類型。

var x ;
var x = 6;
var carname = "Bill Gates"; var carname = 'Bill Gates';
var x = true; var y = false;

// 數組
var cars = new Array();
cars[0] = "Audi";
cars[1] = "BMW";
// 或者使用
var cars = new Array("Audi", "BMW");

// 對象
// 對象由花括號分隔。在括號內部,對象的屬性以名稱和值對的形式(name: value)來定義。屬性由逗號分隔
var person = {
    firstname   : "Bill",
    lastname    : "Gates",
    id          : 5566
};
// 對象屬性的訪問
person.lastname; person["lastname"]

// 聲明變量類型
var carname = new String;
var x = new Number;
var y = new Boolean;
var cars = new Array;
var person = new Object;

    (7)對象

        JS中全部事物都是對象:字符串,數字,數組,日期等待

        在JS中,對象時擁有屬性和方法的數據。

        屬性:與對象有關的值。方法:可以在對象上執行的動做。

// 訪問對象的屬性
objectName.propertyName

// 訪問對象的方法
objectName.methodName

    (8)函數

        函數是由事件驅動的或者當他被調用時執行的可重複使用的代碼塊。

function functionname(){
    // 執行代碼 ...
}

// 調用帶參數的函數
function myFunction(var1, var2){
    // 執行代碼 ...
}

<button onclick="myFunction("Bill Gates", "CEO")">點擊這裏</button>

// 帶有返回值的函數
function myFunction(){
    // 執行代碼 ...
    return x;
}

// 變量的生存期
// 局部變量會在函數運行之後被刪除
// 全局變量會在頁面關閉後被刪除

    (8-1)事件

        HTML事件是發生在HTML元素上的事情。

<button onclick="document.getElementById("demo").innerHTML=Date()">The time is ?</button>

// 常見事件
onchange // HTML元素改變
onclick // 用戶點擊HTML元素
onmouseover // 用戶在一個HTML元素上移動鼠標
onmouseout // 用戶從一個HTML元素上移開鼠標
onkeydown // 用戶按下鍵盤按鍵
onload // 瀏覽器已完成頁面加載

   (8-2)字符串

        字符串可使插入到引號中的任何字符。可使用單引號或者雙引號。

// 可使用索引位置來訪問字符串的每一個字符
var carname = "Volvo XC60";
var character = carname[7];

// 字符串的長度
var sln = carname.length

// 特殊字符
"\""; // 進行轉義

    (9)運算符

        +,-,*,/,%,++,--

        =,+=,-=,*=,/=,%=

    (10)比較

// 比較運算符
==        等於
===       全等(值和類型)
!=, >, <, >=, <= 

// 邏輯運算符
&&        and
||        or
!         not

// 條件運算符
variablename = (condition)?value1:value2;

    (11)If...Else

if (條件1){
    // ...
}
else if (條件2){
    // ...
}
else {
    // ...
}

    (12)Switch

switch(n){
case 1:
    // ...
    break;
case 2:
    // ...
    break;
// ...
default:
    // ...
}

    (13)For

for (var i=0; i<cars.length; i++){
    document.write(cars[i] + "<br>");
}

    (14)While

while (條件){
    // ...
}


do{
    // ...
}
while(條件);

    (15)Break

        break語句跳出循環。continue用於跳過循環中的一個迭代。

    (16)錯誤

try     // 語句測試代碼塊的錯誤
catch   // 語句處理錯誤
throw   // 語句建立自定義錯誤 

try{
    // 在這裏運行代碼
} catch(err){
    // 在這裏處理錯誤
}

// 簡單示例
function mm(){
    try{
        alelrt("welcome guest!"); // alert() 
    } catch(err){
        alert(err.message);
    }
}

    (17)驗證

        js可用來在數據被送往服務器前對HTML表單中的這些輸入數據進行驗證。

        典型:①是否已填寫表單中的必填項 ②輸入的郵件是否合法 ③書否輸入合法日期 ④是否在數據域(numeric field)中輸入了文本

<script>
    function validate_form(){
// 獲取當前頁面forms,中的元素,的value
        var x = document.forms["form_a"]["name"].value;
        if(x == null || x == ""){
            alert("不能爲空!");
            return false;
        } else {
            return true;
        }
    }
</script>

<form action="action.php" name="form_a" onsubmit="return validate_form()" method="post">
    用戶名: <input type="text" name="name" />
    <input type="submit" value="Submit">
</form>

    (18)JSON

        json是JavaScript Object Notation。是一種輕量級的數據交換格式。

// 建立JavaScript字符串
var text = '{ "employees" : [' +
    '{ "firstName":"John" , "lastName":"Doe" },' +
    '{ "firstName":"Anna" , "lastName":"Smith" },' +
    '{ "firstName":"Peter" , "lastName":"Jones" } ]}';

// 使用JS內置函數 JSON.parse() 將字符串轉換爲 JavaScript 對象
var obj = JSON.parse(text);

    (19)void
        常常使用到 javascript:void(0) 這樣的代碼。

<a href="javascript:void(0)">單擊此處什麼也不會發生</a>

// href="#" 與 href="javascript:void(0)" 的區別
// #包含了一個位置信息,默認錨的位置是 #top 也就是網頁的上端。
// 而JavaScript:void(0),僅僅表示一個死連接


2、HTML DOM

    (1)DOM簡介

        經過HTML DOM,能夠訪問JavaScript HTML 文檔的全部元素。

        當網頁被加載時,瀏覽器會建立頁面的文檔對象模型(Document Object Model)。

        查找HTML元素:①經過id ②經過標籤名 ③經過類名

    (2)HTML

// 改變HTML輸出流
document.write(Date());

// 改變HTML內容
<p id="p1">Hello World</p>
<script>
    document.getElementById("p1").innerHTML = "New text!";
</script>

// 改變HTML屬性
<img id="image" src="smiley.gif">
<script>
    document.getElementById("image").src = "landscape.jpg";
</script>

    (3)CSS

        改變HTML元素的樣式

document.getElementById(id).style.property = new style;

// 例子
<p id="p2">Hello World!</p>
<script>
    document.getElementById("p2").style.color = "blue";
</script>

    (4)事件

        HTML DOM 使JavaScript有能力對HTML事件做出反應。

        能夠向HTML事件屬性添加JavaScript代碼。

<p id="p1" onclick="this.innerHTML='hi world.'">Hello world!</p>

// 使用HTML DOM 來分配事件
// HTML DOM 容許您使用JavaScript來向HTML元素分配事件。
<p id="p1">Hello world!</p>
<script>
    document.getElementById("p1").onclick = function(){alert("aa");};
</script>
// 此時,須要將元素<p>放置在 script 前面。或者使用 function() 函數


// onload 和 onunload 事件,會在用戶進入或離開頁面時觸發
<body onload="checkCookies()">
// onchange 事件
<input type="text" onchange="alert(this.value)" />
// onmouseover, onmouseout, onmousedown, onmouseup, onclick

    (5)EventListener

element.addEventListener(event, function, useCapture);

    (6)元素

        如需向HTML DOM 添加新元素,必須先建立該元素(元素節點),而後向一個已存在的元素追加該元素。

// 建立新的HTML元素
<div id="div1">
 <p id="p1">This is a paragraph.</p>
 <p id="p2">This is another paragraph.</p>
 </div>

<script>
 var para=document.createElement("p");
 var node=document.createTextNode("This is new.");
 para.appendChild(node);

 var element=document.getElementById("div1");
 element.appendChild(para);
 </script>

// 刪除已有的HTML元素
<div id="div1">
 <p id="p1">This is a paragraph.</p>
 <p id="p2">This is another paragraph.</p>
 </div><script>
 var parent=document.getElementById("div1");
 var child=document.getElementById("p1");
 parent.removeChild(child);
 </script>


3、高級教程

    (1)對象

        js中全部的事物都是對象:字符串,數值,數組,函數 ...   此外,JS容許自定義對象

        對象只是一種特殊的數據,對象擁有屬性和方法。

objectName.propertyName;

objectName.methodName();

        建立對象,並實例

person = new Object();
person.firstname="John";
person.lastname="Doe";
person.age=50;
person.eyecolor="blue"; 

// 

person = {firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"}

        使用對象構造器。

<script>
    function person(firstname, lastname, age, eyecolor){
        this.firstname = firstname;
        this.lastname = lastname;
        this.age = age;
        this.eyecolor = eyecolor;

        this.changeName = changeName;
        function changeName(name){
            this.changeName = name;
        }
    }
    var a_person = person("John", "Doe", 25, "blue");
    a_person.changeName("Doe");
</script>

    (2)Number 對象

        JS只有一種數字類型。

        全部JavaScript數字均爲64位。

// 八進制
var y = 0377;
// 十六進制
var z = 0xFF;

// 可使用 toString(x), 輸出 x 進制
var num = 128;
num.toString(16);

    (3)String 字符串

// String 使用長度屬性 length 來計算字符串長度
// 使用 indexOf() 來定位字符串中某一個指定的字符串首次出現的位置
// match() 函數用來查找字符串特定的字符,而且若是查找到的話,則返回這個字符串
// replace() 在字符串中用某些字符替換另外一些字符
// toUpperCase(), toLowerCase()
// split() 轉換爲數組
// 特殊字符,轉義 '\'

    (4)Date 日期

new Date();

    (5)Array 數組, Boolean 布爾, Math 算術, RegExp 對象

// 數組
var num = [1, 2, 3, 4]; new Array();

// 布爾
// 0,-0,null,"",false,undefined,NaN

// 算術
Math.sqrt(16); Math.PI; Math.round(4.7); // 四捨五入

// 正則
// regular expression 
var str = "Is this all there is?";
var pattern = /is/i; // 前面的字符串,後面的'i'忽略大小寫。'g'全文搜索
str.match(pattern);
相關文章
相關標籤/搜索