javascript第五天
函数高级
- 作用域
(1) 作用域 它是指对某一变量和函数具有访问权限的代码空间
(2) 在js中作用域就分两种
① 全局作用域:script标签中直接包裹的代码空间 就是全局作用域
② 局部(函数)作用域:函数内部包裹的代码空间
1) 声明在全局作用域中的变量为全局变量 可以在script标签中任意位置被访问到
2) 声明在函数体内部的变量为局部变量 只能在当前函数作用域中被访问到
③ 作用域链的变量查找原则
1) 当我们访问一个变量或函数的时候,会先在当前作用域查找,如果声明了 就使用, 如果没有,就向父级作用域中查找该变量,如果声明了 就使用 如果没声明,就继续向父级作用域查找,一直找到全局作用域,如果声明了 就使用 如果还没声明,就报错
④ 不同作用域中 变量可以重名,不冲突
⑤ 在js中只有函数可以划分作用域
- Js代码的预解析
(1) Js的预解析是在js代码执行之前 进行的
(2) Js代码的预解析 会 遍历所有js代码, 将代码中的 变量声明 和 函数声明 提升到 当前作用域的最顶端
① 变量声明 和 表达式函数声明 都只会提升var 变量名部分 不会提升赋值
② 字面量声明的函数 则会在预解析的时候 将整个函数一起提升到作用域的最顶端
(3) 预解析 在 任何作用域 准备开始执行的时候 都会先进行一次
- 函数的返回值
(1) 函数返回值的写法:function fn(){ return “我爱你,塞北的雪” };
(2) 在函数体中 写入 return关键字 并在关键字后面 写上要返回的值即可
(3) 作用:将函数内部的数据 交给用户, 让用户可以在函数外部得到。
(4) 获取函数返回值: 函数的返回值 就是 函数调用表达式的值
① 函数返回值 === 函数名()
(5) 每一个函数都有返回值 但是不是所有函数都必须写返回值,如果不写,默认返回undefined
(6) 返回语句,具有打断函数执行的功能(相当于是函数中的break)
(7) 一个函数中 只能拥有一个返回值 如果写多了,则返回最后面的一个值,如果想返回多个值 可以将这些值存放进数组或对象中,再返回。
(8) 函数返回值的类型:函数中的返回值可以是任意类型的js数据
- 获取元素非行内样式的方法
(1) getComputedStyle 在标准浏览器中使用的
① 用法:getComputedStyle(要获取样式的元素).样式属性名
② 也可以获取行内样式。
(2) currentStyle 在ie低版本浏览器中使用的
① 由于getComputedStyle在ie8及以下浏览器不生效,因此我们需要使用currentStyle来替代
② 用法:元素.currentStyle.样式属性名
(3) 这两个方法 相互排斥,编写兼容函数
① 思路:判断:如果我们能使用currentStyle 我们就使用 如果不能用 就使用getComputedStyle
② 封装函数四步走
1) 编写函数的主要代码
2) 分析代码中的不确定的值,并提取为参数
3) 将参数代入到函数代码中
4) 调用函数进行测试
浙公网安备 33010602011771号