爲什麼學習JavaScript?
從這兩年的發展趨勢來看,大前端應該是打了實錘了,而JavaScript作爲web前端的主要編程語言,自然是不容小覷。HTML 定義了網頁的內容,CSS 描述了網頁的佈局,而JavaScript 決定網頁的行爲。
JavaScript是什麼?
- JavaScript是一種輕量級的編程語言
- JavaScript 是可插入 HTML 頁面的編程代碼。
- JavaScript 插入 HTML 頁面後,可由所有的現代瀏覽器執行。
JavaScript直接寫入Html輸出流
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>範例</title>
</head>
<body>
<p>
JavaScript 能夠直接寫入 HTML 輸出流中:
</p>
<script>
document.write("<h1>這是一個標題</h1>");
document.write("<p>這是一個段落。</p>");
</script>
<p>
您只能在 HTML 輸出流中使用 <strong>document.write</strong>。
如果您在文檔已加載後使用它(比如在函數中),會覆蓋整個文檔。
</p>
</body>
</html>
JavaScript:點擊事件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>點擊事件範例</title>
</head>
<body>
<h1>我的第一個 JavaScript</h1>
<p>
JavaScript 能夠對事件作出反應。比如對按鈕的點擊:
</p>
<button type="button" onclick="alert('你最帥!')">點我!</button>
</body>
</html>
JavaScript:改變 HTML 內容
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>改變html的內容</title>
</head>
<body>
<h1>我的第一段 JavaScript</h1>
<p id="demo">
JavaScript 能改變 HTML 元素的內容。
</p>
<script>
function myFunction()
{
x=document.getElementById("demo"); // 找到元素
x.innerHTML="Hello JavaScript!"; // 改變內容
}
</script>
<button type="button" onclick="myFunction()">點擊這裏</button>
</body>
</html>
您會經常看到 document.getElementById(“some id”)。這個方法是 HTML DOM 中定義的。DOM (Document Object Model)(文檔對象模型)是用於訪問 HTML 元素的正式 W3C 標準。
JavaScript:改變 HTML 圖像
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>點擊燈泡可以打開關閉這盞燈</title>
</head>
<body>
<script>
function changeImage()
{
element=document.getElementById('myimage')
if (element.src.match("bulbon"))
{
element.src="/images/pic_bulboff.gif";
}
else
{
element.src="/images/pic_bulbon.gif";
}
}
</script>
<img id="myimage" onclick="changeImage()" src="/images/pic_bulboff.gif" width="100" height="180">
<p>點擊燈泡就可以打開或關閉這盞燈</p>
</body>
</html>
JavaScript:改變 HTML 樣式
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>改變HTML樣式</title>
</head>
<body>
<h1>我的第一段 JavaScript</h1>
<p id="demo">
JavaScript 能改變 HTML 元素的樣式。
</p>
<script>
function myFunction()
{
x=document.getElementById("demo") // 找到元素
x.style.color="#ff0000"; // 改變樣式
}
</script>
<button type="button" onclick="myFunction()">點擊這裏</button>
</body>
</html>
JavaScript:驗證輸入
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>驗證輸入</title>
</head>
<body>
<h1>我的第一段 JavaScript</h1>
<p>請輸入數字。如果輸入值不是數字,瀏覽器會彈出提示框。</p>
<input id="demo" type="text">
<script>
function myFunction()
{
var x=document.getElementById("demo").value;
if(x==""||isNaN(x))
{
alert("不是數字");
}
}
</script>
<button type="button" onclick="myFunction()">點擊這裏</button>
</body>
</html>
JavaScript 顯示數據
- 使用 window.alert() 彈出警告框。
- 使用 document.write() 方法將內容寫到 HTML 文檔中。
- 使用 innerHTML 寫入到 HTML 元素。
- 使用 console.log() 寫入到瀏覽器的控制檯。
使用window.alert(),你可以彈出警告框來顯示數據
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>彈出警告框來顯示數據</title>
</head>
<body>
<h1>我的第一個頁面</h1>
<p>我的第一個段落。</p>
<script>
window.alert(5 + 5);
</script>
</body>
</html>
操作 HTML 元素
如需從 JavaScript 訪問某個 HTML 元素,您可以使用 document.getElementById(id) 方法。請使用 “id” 屬性來標識 HTML 元素,並 innerHTML 來獲取或插入元素內容
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>操作 HTML 元素</title>
</head>
<body>
<h1>我的第一個 Web 頁面</h1>
<p id="demo">我的第一個段落。</p>
<script>
document.getElementById("demo").innerHTML="段落已修改。";
</script>
</body>
</html>
寫到 HTML 文檔
document.write() 僅僅向文檔輸出寫內容,如果在文檔已完成加載後執行 document.write,整個 HTML 頁面將被覆蓋
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>寫到控制檯</title>
</head>
<body>
<h1>我的第一個 Web 頁面</h1>
<p>
瀏覽器中(Chrome, IE, Firefox) 使用 F12 來啓用調試模式, 在調試窗口中點擊 "Console" 菜單。
</p>
<script>
a = 500;
b = 20;
c = a + b;
console.log(c);
</script>
</body>
</html>
JavaScript變量
JavaScript 使用關鍵字 var 來定義變量, 使用等號來爲變量賦值
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JavaScript變量</title>
</head>
<body>
<p id="demo"></p>
<script>
var length;
length = 6;
document.getElementById("demo").innerHTML = length;
</script>
</body>
</html>
JavaScript 字面量
- 數字(Number)字面量 可以是整數或者是小數,或者是科學計數(e),如3.14,100,123e5
- 字符串(String)字面量 可以使用單引號或雙引號:如"Lee", ‘Lee’
- 表達式字面量 用於計算如:5+5,6*6
- 數組(Array)字面量 定義一個數組:[2,0,1,3,1,4]
- 對象(Object)字面量 定義一個對象:{firstName:“John”, lastName:“Doe”, age:50, eyeColor:“blue”}
- 函數(Function)字面量 定義一個函數,如下所示
function myFunction(a, b) { return a * b;}
JavaScript 數據類型
JavaScript 有多種數據類型:數字,字符串,數組,對象等等:
- var length = 10; // Number 通過數字字面量賦值
- var points = x * 10; // Number 通過表達式字面量賦值
- var lastName = “ljz”; // String 通過字符串字面量賦值
- var cars = [“lee”, “zhang”, “wang”]; // Array 通過數組字面量賦值
- var person = {firstName:“lee”, lastName:“zhang”}; // Object 通過對象字面量賦值
JavaScript函數
JavaScript 語句可以寫在函數內,函數可以重複引用:
引用一個函數 = 調用函數(執行函數內的語句)。
function myFunction(a, b) {
return a * b; // 返回 a 乘以 b 的結果
}
JavaScript 字母大小寫
JavaScript 對大小寫是敏感的。
當編寫 JavaScript 語句時,請留意是否關閉大小寫切換鍵。
函數 getElementById 與 getElementbyID 是不同的。
同樣,變量 myVariable 與 MyVariable 也是不同的。
JavaScript 語句標識符
JavaScript 對象
JavaScript 對象是擁有屬性和方法的數據。在 JavaScript中,幾乎所有的事物都是對象。
對象定義
你可以使用字符來定義和創建 JavaScript 對象:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>對象定義</title>
</head>
<body>
<p>創建 JavaScript 對象。</p>
<p id="demo"></p>
<script>
var person = {firstName:"李小白", lastName:"蘇小軾", age:23, eyeColor:"blue"};
document.getElementById("demo").innerHTML =
person.lastName + " 現在 " + person.age
+ " 歲,"+"他的眼睛是"+person.eyeColor+"色";
</script>
</body>
</html>
訪問對象屬性
- 通過.property來訪問對象屬性
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>通過.property來訪問對象屬性</title>
</head>
<body>
<p>
有兩種方式可以訪問對象屬性:
</p>
<p>
你可以使用 .property 或 ["property"].
</p>
<p id="demo"></p>
<script>
var person = {
firstName : "A",
lastName : "B",
id : 5566
};
document.getElementById("demo").innerHTML =
person.firstName + " " + person.lastName;
</script>
</body>
</html>
- 通過[“property”]來訪問對象屬性
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>通過["property"]來訪問對象屬性</title>
</head>
<body>
<p>
有兩種方式可以訪問對象屬性:
</p>
<p>
你可以使用 .property 或 ["property"]。
</p>
<p id="demo"></p>
<script>
var person = {
firstName: "A",
lastName : "B",
id : 5566
};
document.getElementById("demo").innerHTML =
person["firstName"] + " " + person["lastName"];
</script>
</body>
</html>
對象方法
對象的方法定義了一個函數,並作爲對象的屬性存儲。
對象方法通過添加 () 調用 (作爲一個函數)。
該實例訪問了 person 對象的 fullName() 方法
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>訪問對象方法</title>
</head>
<body>
<p>創建和使用對象方法。</p>
<p>對象方法作爲一個函數定義存儲在對象屬性中。</p>
<p id="demo"></p>
<script>
var person = {
firstName: "A",
lastName : "B",
id : 5566,
fullName : function()
{
return this.firstName + " " + this.lastName;
}
};
document.getElementById("demo").innerHTML = person.fullName();
</script>
</body>
</html>
如果你要訪問 person 對象的 fullName 屬性,它將作爲一個定義函數的字符串返回
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>訪問 person 對象的 fullName 屬性</title>
</head>
<body>
<p>創建和使用對象方法。</p>
<p>對象方法是一個函數定義,並作爲一個屬性值存儲。</p>
<p id="demo1"></p>
<p id="demo2"></p>
<script>
var person = {
firstName: "你",
lastName : "好 帥",
id : 5566,
fullName : function()
{
return this.firstName + " " + this.lastName;
}
};
document.getElementById("demo1").innerHTML = "不加括號輸出函數表達式:" + person.fullName;
document.getElementById("demo2").innerHTML = "加括號輸出函數執行結果:" + person.fullName();
</script>
</body>
</html>