美文网首页
JavaScript DOM 9.18

JavaScript DOM 9.18

作者: 老实敦厚的宇哥 | 来源:发表于2015-09-18 14:57 被阅读21次

循环语句

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等,可以通过这些对象获取表单,图像和各种表单元素信息。

相关文章

网友评论

      本文标题:JavaScript DOM 9.18

      本文链接:https://www.haomeiwen.com/subject/obpbcttx.html