函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块,当调用该函数时,会执行函数内的代码;JavaScript 中的所有事物都是对象:字符串、数字、数组、日期,等等,在 JavaScript 中,对象是拥有属性和方法的数据。
一、函数
一个简单的示例函数:
function shout() {
var beatles = Array("John","Paul","George","Ringo");
for (var count = 0; count < beatles.length; count++) {
alert (beatles[count]);
}
}
可以随时使用以下语句调用该函数:
shout()
把传递给函数的数据称为参数,定义一个函数的语法:
function name(arguments) {
statements;
}
定义函数时,可以为它声明任意多个参数,用逗号分隔开:
function multiply(num1,um2) {
var total = num1*num2;
alert(total);
}
可以在定义了这个函数的脚本里任意位置调用这个函数:
multiply(10,3);
函数不仅能够(以参数形式)接受数据,还能够返回数据,创建一个函数并让它返回一个数值、一个字符串、一个数组或一个布尔值,需要用到return语句:
function multiply(num1,num2) {
var total = num1*num2;
return total;
}
可以把一个函数的调用结果赋给一个变量:
//以下函数将华摄度转换成摄氏度
function convertToCelsius(temp) {
var result = temp-32;
result = result/1.8;
return result;
}
//将该函数的调用结果赋给一个变量
var temp_f = 95;
var temp_c = convertToCelsius(temp_f);
alert(temp_c);
变量和函数命名规范:
JavaScript不允许函数和变量名里包含空格,命名变量时,用下划线分隔各个单词,命名函数时,一般使用驼峰命名法,从第二个单词开始把每个单词的第一个字母写成大写形式。
二、变量的作用域
- 全局变量 可以在脚本中的任何位置被引用,作用域是整个脚本。
- 局部变量 只存在于声明它的那个函数的内部,作用域仅限于某个特定的函数
可以用var关键字明确地为函数变量设定作用域,如果在某个函数中使用了var,那个变量就将被视为一个局部变量,它只存在于这个函数的上下文中,反之。
如果脚本里已经存在一个与之相同的全局变量,这个函数就会改变那个全局变量的值:
function square(num) {
total = num*num;
return total;
}
var total = 50;
var number = square(20);
alert(total);
全局变量 total 的值变成了400,因为未把这个函数内部的total变量明确声明为局部变量:
function square(num) {
var total = num*num;
return total;
}
var total = 50;
var number = square(20);
alert(total);
运行以上代码total值为50。
三、对象
对象是自包含的数据集合,包含在对象里的数据可以通过两种形式访问————属性和方法:
- 属性是隶属于某个特定对象的变量;
- 方法是只有某个特定对象才能调用的函数。
在JavaScript里,属性和方法都使用“点”语法来访问:
Objec.property
Object.method()
创建新对象有两种不同的方法:
1. 定义并创建对象的实例
2. 使用函数来定义对象,然后创建新的对象实例
下面脚本创建了对象的一个新实例,并向其添加了四个属性:
person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";
以上代码可改写为:
person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};
为给定对象创建一个新实例需要使用new关键字:
var jermy = new person;
内建对象
JavaScript提供了一些预先定义好了的对象,这些可以拿来就用的对象称为内建对象。
宿主对象
由浏览器提供的预定义对象被称为宿主对象。