函数

1:函数的概念和作用

定义:函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。

作用:可以使一段代码块重复的使用。

2:函数的编写

function funcName(){}

例:function hello(){

document.write(hello);

}

3:函数调用

调用方式:

1:手动调用。即:函数名称()。

hello();

2:事件驱动。

<div id=box  style=width:100px;height:100px;background:#000;></div>

var oBox = document.getElementById(box);

oBox.onclick = function () {

hello();

};

4:事件的概念种类及作用

1:什么是事件?

通过鼠标或者键盘在浏览器窗口或者网页元素(按钮、文本框)上执行的操作,我们称之为事件(Event)。

2:什么是事件驱动?

由事件引发的一连串程序的动作,称为事件驱动(Event-Driver)。

举个例子:人被挨打后做出的反应。

事件类型:鼠标事件,键盘事件,网络事件等。

常用事件:onclick(单击),ondblclick(双击),onmouseover(鼠标进入),onmouseout(鼠标移开),onkeydown(键盘按下),onkeyup(键盘抬起)。

5:事件循环结合打印九九乘法表

  例: <div id=box  style=width:100px;height:100px;background:#000;></div>

var oBox = document.getElementById('box');

oBox.onclick = function(){

for(var i = 1; i <= 9;i++){

for(var j = 1; j <= i; j++){

document.write(j + '*' + i + '=' + j * i + ' ');

}

document.write('<br/>');

}

};

6:参数的声明

定义:在调用函数的时候,我们可以向其传递值,这些值被称为参数。多个参数用逗号(,)分割

function sum(a ,b){

alert(a + b);

}

sum(4,7);

7:函数创建方式

1:函数声明

function funcName (){};

例:funtion sum(a,b){

console.log(a + b);

};

sum(4 , 5);

2:函数表达式(函数字面量)

var funcName = function(){};

var sum = function(a,b){

console.log(a + b);

}

sum(4,5);

3:函数构造法(构造函数:出现在new运算符后的函数,称为构造函数)

var funcName = new Function();

var sum = new Function(a, ‘b, ‘console.log(a + b);s);

sum(4,5);

注:函数表达式也可以指定函数名称,而函数声明是不可以省略函数名称。直接用函数表达式指定的函数名称调用函数会报错。

8:声明式和表达式区别

1:JS解析器如何区分是函数声明还是函数表达式?如果一条语句是以function关键字开始,那么这段会被判定为函数声明。而函数声明是不能被立即执行的,这无疑会导致语法的错误(SyntaxError),因此就必须有一个办法,使解析器可以将之识别为函数表达式。

既然解析器识别函数定义的条件是以function关键字开始,那么只需要在function关键字前面有任何其他的运算符,就会从函数的定义转变为函数表达式。

2:函数声明式的方式必须指定函数名,函数表达式的方式可以没有名字。

3:如何将函数声明式转换成函数表达式?

~function(){}();

+function(){}();

-function(){}();

void function(){}();

(function(){})();

前几个转换方式看起来比较丑,通常都用最后一种来转换。

括号的作用:1确立运算优先级,2分组运算符。

9:形参和实参

形参:函数定义时声明的参数,我们称为形参(形式参数)。

实参:函数调用时传入的参数,我们称为实参(实际参数)。

10:arguments

定义:用来存放函数调用时传入的实参的对象(数组)。

结论:函数调用时传入的参数数量和函数定义时声明的参数数量没有关系,唯一有关系的就是参数顺序。

例:function sum(a,b){

console.log(arguments);

console.log(a + b);

}

sum(4,9);

11:return关键字

定义:用来规定从函数返回的值。

注意事项:

1:使用return语句以后,函数会停止执行,并返回给定的值。但是整个JS代码并不会停止执行。

2:如果函数没有显式的定义return语句,那么当函数代码段执行完毕后,默认会返回undefined。

3:return后面的代码不会运行

4:return不会将值返回到页面,只会从函数内部返回到函数外面;

5:return一次只能返回一个值

例:function sum(a,b){

var c = a + b;

return c;

}

var d = sum(4,7);

document.write(d);

12:JS解析顺序

1:读取第一个代码块。

2:做语法分析,有错则报语法错误(比如括号不匹配等),并跳转到第五步。

3:对var变量和function定义做预编译处理。

4:执行代码段、有错则报错。

5:如果还有下一个代码段,则读入下一个代码段,重复第二步。

6:解析结束。

13:作用域

定义:变量起作用的范围。

在函数外部定义的变量称为全局变量,那么所有的脚本和函数都能访问到它。

var a = 5;

var b = 7;

在函数内部定义的变量称为局部变量(本地变量),所以只能在函数内部才能访问的到。

function sum(){

var c = a + b;

console.log(c);

};

sum();

注:

1:如果把值赋给尚未声明的变量,该变量将自动作为全局变量声明。

2:变量作用域在函数定义的时候就已经确定下来了。

14:生存周期

JavaScript 变量的生命期从它们被声明的时间开始。

局部变量会在函数运行完毕后被删除。

全局变量会在页面关闭后被删除。

15:with语句(扩展)

定义:为一个或者一组语句指定默认对象。

注意:在严格模式下,with语句不能使用。

提示:with语句是运行缓慢的代码块,尽量避免使用。

例:with(document){

write('hello world');

};

16:回调函数

回调函数就是一个通过函数指针调用的函数。

如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。

回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

function sum(a,b,fn){

var c = a + b;

if(fn){

fn();

}

console.log(c);

}

sum(3,8,function(){

alert(1);

});

17:递归函数

定义:允许内部程序调用自己本身的函数。

特点:

1:在函数里面调用自身。

2:必须有一个明确的递归结束条件,这个称之为递归出口。

3:不确定循环执行的次数。

注:快速排序中就使用到了递归函数。

18:匿名函数及调用方式

定义:顾名思义,就是没有名字的函数。

自运行:自动运行。

调用方式:(function () {})();

19:构造函数

主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用。构造函数名称首字母一般都大写。

function sum(){

alert(1);

}

new sum();

20:对象

定义:对象就是属性的无序集合,每个属性存放一个原始值、对象或者函数。

对象的属性和行为:

   属性:用数据值来描述他的状态。

   行为:用来改变对象行为的方法。

21:创建对象

1:构造函数方式:

    function fun1 () {}

    var obj=new fun1();

    alert(typeof obj);

2:Object方式:

var obj=new Object();

console.log(obj);

3:隐式声明的方式:

var obj={};

alert(typeof obj);

22添加对象属性和方法

如果属性值是函数,我们称它为对象的方法,否则叫做属性。

1:声明的时候添加:

    var obj={属性名:属性值,属性名2:属性值2,......};

2:声明以后再添加

23:访问对象属性和方法

形式为:

    引用值.属性

引用值.方法();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值