常量
变量
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标签