常量
變量
JavaScript 擁有動態類型。這意味著相同的變量可用作不同的類型:
聲明
var x=2;
var name="Bill Gates";
var answer='Yes I am!';
作用域
局部變量
局部 JavaScript 變量
在 JavaScript 函數內部聲明的變量(使用 var)是局部變量,所以只能在函數內部訪問它。(該變量的作用域是局部的)。
您可以在不同的函數中使用名稱相同的局部變量,因為只有聲明過該變量的函數才能識別出該變量。
只要函數運行完畢,本地變量就會被刪除。
全局變量
在函數外聲明的變量是全局變量,網頁上的所有腳本和函數都能訪問它。其他js文件里的代碼能否訪問到?
如果您把值賦給尚未聲明的變量,該變量將被自動作為全局變量聲明。
這條語句:
carname="Volvo";
將聲明一個全局變量 carname,即使它在函數內執行。
生存期
局部變量會在函數運行以后被刪除。
全局變量會在頁面關閉后被刪除。
一個好的編程習慣是,在代碼開始處,統一對需要的變量進行聲明。
同一個js中相同名稱的變量會被后一個值覆蓋。但是這種情況不會:
var x="2";
var x;
兩個js中相同的變量會怎么樣
數據類型
字符串、數字、布爾、數組、對象、Null、Undefined
字符串
可以使用單引號或雙引號,可內含引號
var answer="Nice to meet you!";
var answer="He is called 'Bill'";
數字
布爾
布爾(邏輯)只能有兩個值:true 或 false。
數組
var cars=new Array();
cars[0]="Audi";
cars[1]="BMW";
cars[2]="Volvo";
var cars=new Array("Audi","BMW","Volvo");
var cars=["Audi","BMW","Volvo"];
對象
var person={firstname:"Bill", lastname:"Gates", id:5566};
name=person.lastname;
name=person["lastname"];
Undefined 和 Null
聲明變量類型
當您聲明新變量時,可以使用關鍵詞 "new" 來聲明其類型:
var carname=new String;
var x= new Number;
var y= new Boolean;
var cars= new Array;
var person= new Object;
JavaScript 變量均為對象。當您聲明一個變量時,就創建了一個新的對象。
函數
聲明
<script>
function myFunction()
{
x=document.getElementById("demo"); // 找到元素
x.innerHTML="Hello JavaScript!"; // 改變內容
}
</script>
使用
<button type="button" onclick="myFunction()">點擊這里</button>
帶參數
<button onclick="myFunction('Bill Gates','CEO')">點擊這里</button>
<script>function myFunction(name,job)
{
alert("Welcome " +name
- ", the " +job
);}
</script>
返回值
function myFunction(a,b)
{
return a*b;
}
document.getElementById("demo").innerHTML=myFunction(4,3);
類
事件
onclick <button type="button" onclick="alert('Welcome!')">點擊這里</button>
圖片
<script>
function changeImage()
{
element=document.getElementById('myimage')
if (element.src.match("bulbon"))
{
element.src="/i/eg_bulboff.gif";
}
else
{
element.src="/i/eg_bulbon.gif";
}
}
</script>
<img id="myimage" onclick="changeImage()" src="/i/eg_bulboff.gif">
其他
外部的 JavaScript
<!DOCTYPE html>
<html>
<body>
<script src="myScript.js"></script>
</body>
</html>
外部腳本不能包含script標簽