函数、数组、对象

函数

函数就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用。

创建函数

一、声明函数

function 函数名(形参,....) {    函数体代码}

注:function 是声明函数的关键字,必须小写。

二、匿名函数

var  变量 = function(){  }

三、箭头函数

var 变量=(只有一个参数可不写)=>{只有一行代码可以不写大括号};

调用函数 

函数名(实参,....);通过调用函数名来执行函数体代码

形参:函数定义时设置接收调用时传入

实参:函数调用时传入小括号内的真实数据

注:函数形参和实参数量不匹配时则

(1)实参个数大于形参:只取到形参的个数‘

(2)实参个数小于形参:多的形参定义为undefined,结果为NaN。

函数的封装

函数的封装是把一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口。

return 关键字

在使用 return 语句时,函数会停止执行,并返回指定的值,如果函数没有 return ,返回的值是 undefined,return 之后的代码将不再执行(只可在函数体中使用)。

break ,continue ,return 的区别

break :结束当前的循环体(如 for、while)。

continue :跳出本次循环,继续执行下次循环(如 for、while)。

return :不仅可以退出循环,还能够返回 return 语句中的值,同时还可以结束当前的函数体内的代码。


数组

数组的概念

数组可以把一组相关的数据一起存放,并提供方便的访问(获取)方式。

数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变量名下的优雅方式。

创建数组

一、利用  new 创建数组 :

var 数组名 = new Array() ;

注意 : Array () ,A 要大写 .

二、利用数组字面量创建数组:

var  数组名 = [ ];

例如:var 数组名 = ['小白','小黑','大黄','瑞奇'];

(1)数组的字面量是方括号 [ ]

(2)声明数组并赋值称为数组的初始化

(3)这种字面量方式也是我们以后最多使用的方式

获取数组中的元素

索引 (下标) :用来访问数组元素的序号(数组下标从 0 开始)。

数组可以通过索引来访问、设置、修改对应的数组元素,

可以通过“**数组名[索引]**”的形式来获取数组中的元素。

注意:如果访问时数组没有和索引值对应的元素,则得到的值是undefined

遍历数组

数组遍历: 把数组中的每个元素从头到尾都访问一次(类似学生的点名)。

可以通过 for 循环索引遍历数组中的每一项。

例如:

var arr = ['red','green', 'blue'];

for(var i = 0; i < arr.length; i++){    

console.log(arrStus[i]);

}

数组的长度:默认情况下表示数组中元素的个数

使用“数组名.length”可以访问数组元素的数量(数组长度)。

注意

(1)此处数组的长度是数组元素的个数 ,不要和数组的索引号混淆。

(2)当我们数组里面的元素个数发生了变化,这个 length 属性跟着一起变化,数组的length属性可以被修改:

(3)如果设置的length属性值大于数组的元素个数,则会在数组末尾出现空白元素;

(4)如果设置的length属性值小于数组的元素个数,则会把超过该值的数组元素删除

数组添加元素

数组中可以通过以下方式在数组的末尾插入新元素: 数组[ 数组.length ] = 新数据;

也可以通过 数组= fruits.push('Orange');添加元素到数组的末尾。


对象

在 JavaScript 中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。 对象是由属性和方法组成的。

属性:事物的特征,在对象中用属性来表示(常用名词)

方法:事物的行为,在对象中用方法来表示(常用动词)

创建对象的三种方式

一、使用对象字面量创建对象:

 就是花括号 { } 里面包含了表达这个具体事物(对象)的属性和方法;

{ } 里面采取键值对的形式表示;

:相当于属性名

:相当于属性值,可以是任意类型的值(数字类型、字符串类型、布尔类型,函数类型等)

对象的使用

对象的属性

对象中存储具体数据的 "键值对"中的 "键"称为对象的属性,即对象中存储具体数据的项

对象的方法

对象中存储函数的 "键值对"中的 "键"称为对象的方法,即对象中存储函数的项

访问对象的属性

对象里面的属性调用 : 对象.属性名 ,这个小点 . 就理解为“ 的 ” 

对象里面属性的另一种调用方式 : 对象[‘属性名’],注意方括号里面的属性必须加引号     

调用对象的方法

对象里面的方法调用:对象.方法名() ,注意这个方法名字后面一定加括号

变量、属性、函数、方法总结

属性是对象的一部分,而变量不是对象的一部分,变量是单独存储数据的容器

变量:单独声明赋值,单独存在

属性:对象里面的变量称为属性,不需要声明,用来描述该对象的特征

二、利用 new Object 创建对象

创建空对象

varandy=newObect();

通过内置构造函数Object创建对象,此时andy变量已经保存了创建出来的空对象

给空对象添加属性和方法

通过对象操作属性和方法的方式,来为对象增加属性和方法

注意:

Object() :第一个字母大写 

new Object() :需要 new 关键字

使用的格式:对象.属性 =  值;   

三、利用构造函数创建对象

构造函数

构造函数:是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总与 new 运算符一起使用。我们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面。

构造函数的封装格式:

function 构造函数名(形参1,形参2,形参3) {   

 this.属性名1 = 参数1;   

 this.属性名2 = 参数2;  

  this.属性名3 = 参数3;   

 this.方法名 = 函数体;

}

构造函数的调用格式

var obj = new 构造函数名(实参1,实参2,实参3)

以上代码中,obj即接收到构造函数创建出来的对象。

注意事项

(1)构造函数约定首字母大写

(2)函数内的属性和方法前面需要添加 this ,表示当前对象的属性和方法。

(3)构造函数中不需要 return 返回结果

(4)当我们创建对象的时候,必须用 new 来调用构造函数

其他

构造函数,如 Stars(),抽取了对象的公共部分,封装到了函数里面,它泛指某一大类(class)创建对象,如 new Stars(),特指某一个,通过 new 关键字创建对象的过程我们也称为对象实例化。

new关键字的作用

在构造函数代码开始执行之前,创建一个空对象;

修改this的指向,把this指向创建出来的空对象;

执行函数的代码;

在函数完成之后,返回this---即创建出来的对象;

 遍历对象

for...in 语句用于对数组或者对象的属性进行循环操作。

其语法如下:

for (变量 in 对象名字) {    // 在此执行代码}

语法中的变量是自定义的,它需要符合命名规范,通常我们会将这个变量写为 k 或者 key。

for (var k in obj) { 

   console.log(k);      // 这里的 k 是属性名   

 console.log(obj[k]); // 这里的 obj[k] 是属性值

}

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