javascript第五天

函数高级

  1. 作用域

(1)     作用域 它是指对某一变量和函数具有访问权限的代码空间

(2)     在js中作用域就分两种

①    全局作用域:script标签中直接包裹的代码空间 就是全局作用域

②    局部(函数)作用域:函数内部包裹的代码空间

1)       声明在全局作用域中的变量为全局变量  可以在script标签中任意位置被访问到

2)       声明在函数体内部的变量为局部变量  只能在当前函数作用域中被访问到

③    作用域链的变量查找原则

1)       当我们访问一个变量或函数的时候,会先在当前作用域查找,如果声明了 就使用, 如果没有,就向父级作用域中查找该变量,如果声明了 就使用 如果没声明,就继续向父级作用域查找,一直找到全局作用域,如果声明了 就使用  如果还没声明,就报错

④    不同作用域中 变量可以重名,不冲突

⑤    在js中只有函数可以划分作用域

  1. Js代码的预解析

(1)     Js的预解析是在js代码执行之前 进行的

(2)     Js代码的预解析 会 遍历所有js代码, 将代码中的 变量声明 和 函数声明 提升到 当前作用域的最顶端

①    变量声明 和 表达式函数声明 都只会提升var 变量名部分 不会提升赋值

②    字面量声明的函数 则会在预解析的时候 将整个函数一起提升到作用域的最顶端

(3)     预解析 在 任何作用域 准备开始执行的时候 都会先进行一次

  1. 函数的返回值

(1)     函数返回值的写法:function fn(){ return “我爱你,塞北的雪” };

(2)     在函数体中 写入 return关键字  并在关键字后面 写上要返回的值即可

(3)     作用:将函数内部的数据 交给用户, 让用户可以在函数外部得到。

(4)     获取函数返回值: 函数的返回值  就是  函数调用表达式的值

①    函数返回值 ===  函数名()

(5)     每一个函数都有返回值 但是不是所有函数都必须写返回值,如果不写,默认返回undefined

(6)     返回语句,具有打断函数执行的功能(相当于是函数中的break)

(7)     一个函数中 只能拥有一个返回值 如果写多了,则返回最后面的一个值,如果想返回多个值 可以将这些值存放进数组或对象中,再返回。

(8)     函数返回值的类型:函数中的返回值可以是任意类型的js数据

  1. 获取元素非行内样式的方法

(1)     getComputedStyle 在标准浏览器中使用的

①    用法:getComputedStyle(要获取样式的元素).样式属性名

②    也可以获取行内样式。

(2)     currentStyle  在ie低版本浏览器中使用的

①    由于getComputedStyle在ie8及以下浏览器不生效,因此我们需要使用currentStyle来替代

②    用法:元素.currentStyle.样式属性名

(3)     这两个方法 相互排斥,编写兼容函数

①    思路:判断:如果我们能使用currentStyle 我们就使用  如果不能用 就使用getComputedStyle

②    封装函数四步走

1)       编写函数的主要代码

2)       分析代码中的不确定的值,并提取为参数

3)       将参数代入到函数代码中

4)       调用函数进行测试

posted @ 2020-10-09 18:45  默默的1  阅读(52)  评论(0)    收藏  举报