JavaScript DOM 9.18

循环语句

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容

  • 前言 归根结底,代码都是思想和概念的体现。没人能把一种程序设计语言的所有语法和关键字都记住,可以查阅参考书来解决。...
    朱细细阅读 2,935评论 4 14
  • 作者的序言 朋友们,弃疗系列4出来啦,作者还并没有放弃,感觉自己萌萌哒,233。 语句 js程序其实就是一系列可执...
    zhaolion阅读 1,752评论 0 8
  • 如题。
    瞳亻阅读 121评论 0 1
  • 《硅谷之谜》是吴军老师的一本新著。以下是我读这本书的一些读书笔记和心得。 硅谷并不是一个地理上的概念,地图上或GP...
    刘敏捷阅读 584评论 0 1
  • 今晚在群里看到群友发了一个视频,是关于一个老人用一部三轮拉着自家种的菜,结果被四个城管拦住了,还把他的菜都丢地上。...
    彤琪宝贝阅读 138评论 0 2