JS中的函数与方法

函数function

函数也是一个对象,

函数中可以封装一些功能代码,在需要的时候可以调用执行这些代码

使用typeof检查一个函数对象是,返回的是function

创建一个函数对象的第一种方法

var fun= Function();

第二种方法

使用函数声明来创建一个函数对象

function fun(形参1,形参2){语句}

封装到函数中的代码不会立即执行,而是调用的时候执行。

调用函数语法:

函数对象名() 例如:fun()

创建一个匿名函数

function(){}

可以在函数的()中指定一个或多个形式参数

多个形参之间使用,隔开,声明形参就相当于在函数内部声明了对应的变量

function fun(a,b){

console.log(a+b);

}

调用函数时可以在()中指定实参,实参会赋值给对应的形参

fun(1,2);

调用函数时,解析器不会检查实参的类型,

所以要注意,是否可能会接收到非法的参数,如果有可能则需要对参数进行检查

调用函数时,解析器也不会检查实参的数量

多余的实参不会被赋值

如果实参的数量少于形参的数量

则没有对应实参的形参的值时undefined

实参可以是任意类型的值

也可以是一个对象

当我们参数过多时,可以考虑将它封装到一个对象中,然后通过对象传递

函数的返回值

可以使用return来设置函数的返回值

语法:

​ return 值

return后的值将会作为函数的执行结果返回

可以定义一个变量来接收这个值

在函数后面的语句都不会执行

如果return后面不跟任何的值都会返回undefined

不写return也会返回一个undefined

Js中的函数与方法的区别

JS中的方法和函数没有本质上的区别

当一个函数作为一个对象的参数时我们就把他叫做方法

枚举对象中的属性

for。。。in。。

语法:for(var 变量 in 对象){

}

for。。in语句 对象中有几个属性,循环就会执行几次

例如:

fun={

name:“孙悟空”,

age:18,

gender:“男”

};

for(var n in fun){

console.log(“"hello");

}

这个时候就会输出三个hello

每次执行时会将对象中的一个属性名赋值给变量

作用域:

全局作用域

全局作用域在页面打开时创建,在页面关闭时销毁

·在全局作用域中有一个全局对象widow

​ 它代表的是一个浏览器窗口,它有浏览器创建,我们可以直接使用

·在全局作用域中:

​ 创建的变量都会作为window对象的属性保存

​ 创建的函数都会作为window对象的方法保存

​ 在全局作用域中创建的变量都是全局变量

​ 在页面的任意地方都可以访问的到

函数作用域

调用函数时函数作用域创建,调用结束后销毁

每调一次就会创建一个新的函数作用域,他们之间是相互独立的

在函数作用域中可以访问到全局作用域的变量

但是在函数作用域中声明的变量不能在别的作用域中访问

当函数作用域操作一个变量时,他会现在自己的作用域中寻找,有就直接使用

如果没用就向它的上一级寻找

如果在全局作用域中还是没有找到,则会报错referenceError

在函数作用域中如果想跳过函数作用域直接使用全局变量可以用“window . ”来实现

在函数作用域中,不适用var关键字声明的变量则会成为全局变量

变量的声明提前

·使用var关键字声明的变量,会在所有代码执行前提前声明,但是不会赋值

​ 但如果声明变量时不使用var关键字,变量则不会被声明提前

上面两种方式的效果是一样的,使用var关键字声明这样不会报错

这样则会报错

函数的声明提前

使用函数声明创建的函数会在所有代码运行前提前创建

function 函数名 ( ) { }

使用函数表达式创建的函数不会提前被创建

var 函数名=function( ){ }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值