循环语句
if条件语句的不足之处是无法完成重复性的操作,包含在花括号里的代码只能执行一次。如果要多次执行一个代码块,就必须是使用循环语句。
只要给定的条件能得到满足,循环语句里的代码就将重复的执行下去:一旦给定的条件不再是true,循环也就到此为止。
while循环
与if相似,语法几乎完全一样:
while(condition){
statement;
}
只要给定的条件的求值结果为true,包含在花括号里的代码就将反复的执行下去。下面是一个while循环的例子:
var count=1;
while (count < 11){
alert ( count);
count++;
}
这个alert对话框将重复执行10次。最终显示变量alert的值为11.
do...while循环
类似于if语句的情况,while循环的花括号所包含的语句有可能不被执行,控制条的求值发生在每次循环的开始之前,如果首次求值结果是是false,那么将一次都不会执行。
某些情况下 我们想代码至少执行一次,则使用
do{
statement;
}
while (condition);`
for循环
类似于while,for循环使其更紧凑:
for(var count = 1;count < 11;count++ ){alert (count);}
与循环相关的所有内容都包含在for语句的圆括号里。
for循环的最常见的用途是对数组里的全体元素处理。往往需要array.length这个属性,这个属性可以告诉我们给定的数组里的元素:
var beatles = Array("john","paul","george","ringo");`
for(var count=0;count<beatles.length;count++){`
alert(beatles[count]);
}
下标为0 1 2 3,length的长度为4,所以浏览器将收到四条alert消息,对应beatles成员。
函数(function)
如果需要多次使用同一段代码,可以把他们封装成一个函数。函数是一种允许在你代码里随时调用的语句。每个函数实际上都是一个短小的脚本。
作为一个良好的编程习惯,应该对函数做出定义再调用它们。
function shout(){
var beatles = Array("john","paul","george","ringo");
for (var count=0;count<beatles.length;count++){
alert(beatles[count])
}
}
定义完函数后,可以随时调用这个函数:
shout( );
每当要反复做一件事的时候,都可以利用函数来避免重复键入大量内容。你可以把不同的数据传给他们,他们使用这些数据来完成预定的操作。传递给函数的数据叫做参数(argument)。
js提供很多内建函数,alert就是一个,我们提供一个参数,他将弹出一个对话框来现实这个参数的值。
function chufa(num1,num2){
var total = num1/num2;
alert(total);
}
在定义之后,我们可以从任意位置调用,如下:
chufa(10,2)
则输出5。
我们可以创建一个函数并且让他返回一个数值,一个字符串,一个数组活者一个布尔值,需要用到return语句。
funcion convertToCelsius(temp){
var result = temp - 32;
result = result / 1.8;
return result;
}
我们还可以把函数当作一种数据类型来用,意味着可以把一个函数的调用结果复制给一个变量(用return的值来当作数据类型):
var temp_fahrenheit = 95;
var temp_celsius = converToCelsius(temp_fahrenheit);
//return result作用
alert(temp_celsius);
命名变量的时候,我用下划线来分割各个单词;命名函数时,从第二个单词开始每一个单词首字母大写(驼峰)。这样可以一眼看出哪个是变量,哪个是函数。
变量的作用域
作为一个好的变成习惯,在第一次对变量赋值的时候应该用var对其声明,挡在函数内使用变量的时候更应该这么做。
变量既可以是全局的,也可以是局部的。起区别是:变量的作用域(scope)
全局变量可以在脚本的任何一个位置被引用。一旦你声明了全局变量,就可以在任何位置,包括函数内部引用它,作用域是整个脚本。
局部变量只存在于声明它的那个函数内部,在函数外部是无法使用它的,它的作用域是特定的函数。
所以在函数里既可以使用局部变量也可以使用全局变量。但如果你在一个函数内部引用了一个全局变量的名字,及时本来只想使用一个局部变量,js也会认为你在引用一个全局变量。
使用var关键字可以明确的为函数变量设定作用域。
在某个函数中使用了var,则视为一个局部变量,只存在于函数中,反之,没有使用var,就是一个全局变量,如果已存在一个与之同名的全局变量,这个函数就会改变全局变量的值。
function squre(num){
total = num / num;
return total;
}
var total = 50;
var number = square(20);
alert(total); //结果是400,不是50`
函数在行为方面应该表现的像一个自给自足的脚本,所以一定要把它的内部变量全部声明为局部变量。所以总是使用var声明变量就可以避免二义性隐患。
对象(object)
对象是自包含的数据集合,包含在对象里的数据可以通过两种形式访问:
属性(property)和方法(method):
- 属性是隶属于某个特定对象的变量;
- 方法是只有某个特定对象才能调用的函数。
对象就是由一些属性和方法组合在一起的数据实体
在js里,属性和方法都使用“点”来访问:
Object.property
Object.method()
我们使用mood和age等变量来存放“心情”和“年龄”之类的值。他们属于一个对象,例如一个人的,假设person,使用所示记号来使用他们:
Person.mood
Person.age
我们的person对象还可以关联一些walk() sleep()之类的函数,这些函数就是这个对象的方法,我们必须使用如下标记来访问它们:
Person.walk()
Person.sleep()
把这些属性和方法集合在一起,我们就得到了一个Person对象。为了使person对象来描述一个特定的人,需要创建一个实例,例如你我都是人,都可以用person来描述。但我们是不同个体,为对象创建一个新的实例需要使用new关键字,如下所示:
var jeremy = new Person;
内建对象
js提供一些列预先定义好的对象,这些拿来就可以用的对象成为内建对象。
数组就是一个内建对象,我们用new关键字去初始化一个数组,就是在创建一个Array的新实例:
var beatles = new Array();
当需要了解某个数组有多少元素的时候,利用Array对象的length属性来获得这一信息:
beatles.length;
Array对象只是众多js内建对象中的一种。其他例子包括Math对象和Date对象,一共方法处理数值和日期值。Math对象的round方法可以把十进制数值舍入为一个与之最接近的整数:
var num = 7.561;
var num = Math.round(num);
alert(num);
Date对象可以用来储存和检索与特定日期和时间有关的信息。在创建Date新对象实例时,js解释器会自动的使用当前日期初始话:
var current_date = new Date;
var today=current_date.getDay();
宿主对象
还可以在js里使用了一些已经预先定义好的其他对象。这些对象不是由js语言本身提供,而是由它的运行环境提供的。具体到web应用,这个环境就是浏览器。由浏览器预定义的对象被称为宿主对象(host object)
宿主对象包括form,image,element等,可以通过这些对象获取表单,图像和各种表单元素信息。
网友评论