js函数:

 掌握函数的基本使用,让代码具备复用的能力(重复使用,减少代码书写量,减少冗余)

理解封装的意义,能够具备封装函数的能力

 

 函数:function,是被设计为执行特定任务代码块

 函数可以把具有相同或相识逻辑的代码"包裹"起来,通过函数调用去执行这些"包裹"的代码逻辑,这么做的优势是有利于精简代码方便复用、

 

函数的使用:

函数得声明语法:

function  函数名(){

函数体

}

 

函数命名规范:

和函数命名规范基本一致

尽量小驼峰式命名法

前缀应该为动词

常用动词约定:

can             判断是否可执行某个动作

has             判断是否含义某个词

is                判断是否为某个值

get              获取某个值

set             设置某个值

load           加载某些数据

 

 

 

 函数的复用代码和循环重复代码有什么不同?

循环代码写完立即执行,不能很方便控制执行位置

函数能随时调用,随时执行,可重复调用,方便控制执行位置

函数传参:!!! 

 有参数的函数声明和调用:

function 函数名(参数列表){                                                     参数列表:

函数体                                                                                          传入数据列表

}                                                                                                    声明这个函数需要传几个数据

                                                                                                     多个数据用逗号隔开

 有参数的调用

函数名(传递的参数列表)

 形参: 声明函数时写在函数右边小括号里面的叫形参(形式上的参数,假的参数,不是真实的)

实参:调用函数时写在函数名右边小括号里的叫实参(实际上的参数,真实的参数,真正起作用的参数)

形参可以理解为这个函数内声明的变量,实参可以理解为给这个变量赋值

开发中尽量保持形参和实参个数一致

我们曾经使用过的alert('打印'),parseInt('11'),number('11')本质上都是函数调用的传参

 

 

 用return返回数据

return注意事项:

 在函数体中使用return关键字能将内部的执行结果交给函数外部使用

函数内部只能出现一次return,并且return后面的代码不会再被执行,所以return 后面的数据不能换行写!!!

 

return会立即结束当前的函数

函数可以没有return,这种情况函数默认返回值为undefined

 

 

作用域:

 作用域:

通常来说,一段程序代码中所用的名字并不是总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用于的使用提高了程序的局部性,增强了程序的可靠性,减少名字冲突。

 全局作用域:作用于所有的代码执行的环境(整个script标签内部)或者一个独立的js文件

局部作用域:作用于函数内的代码环境,就是局部作用域。因为和函数有关系,所以也叫作函数作用域!

块级作用域:块级作用域由{ }包括,if语句和for语句里面的{}等都是块级作用域

变量作用域:

 

全局变量:全局变量在任何区域都可以访问和修改

局部变量:局部变量只能在当前的函数内部访问和修改

块级变量:l只能在块级作用域里访问,不能跨块访问,也不能跨函数访问

变量的两种特殊情况:

 如果函数内部(局部变量)或者块级作用域内部,变量没有声明,直接赋值,当作全局变量来看,但是强烈不推荐!!!

 还有一种情况,函数内部的形参可以看做局部变量

 

在不同作用域下,可能存在变量命名冲突的情况,到底执行谁呢?


 

 变量访问原则--作用域链:

只要是代码,就至少有一个作用域

写在函数内部的局部作用域

如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域

根据在内部函数可以访问外部函数变量的这种机制,用链式查找决定哪些数据能被内部函数访问,就称为作用域链

 内部函数访问数据机制,就近原则,先在里面找这个数据,如果找不到在一层一层的往外面找这个数据,如果找到最外层还是找不到的话,就是not a defined报错,就像一条链一样,有里往外查询数据!!!

匿名函数:

 具名函数(具有名字的函数)

匿名函数(没有名字的函数)

 

 将匿名函数赋值给一个变量,并且通过变量名进行调用,我们将这个称为函数表达式

立即执行函数:  (不需要调用,立即执行)

 立即执行函数也是匿名函数的一种

场景介绍:避免全局变量之间的污染

语法:

(function (){console.log(11)})();

(function (){console.log(11)}())

立即执行函数   第一个小括号放的是 形参 ;  第二个小括号放的是实参

立即执行函数函数加不加名字,无影响。可以加上函数名,不过还是立即执行函数。

 多个立即执行函数在同一作用域内,必须使用;隔离开!!!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值