函数的概念以及作用:
概念: 函数是由事件驱动的或者当它被函数名调用时可重复使用的代码块
作用: 用来保存代码块, 在需要的时候调用, 函数在没有调用之前是没有任何作用的
函数只有被调用了才会起作用
函数参数
函数的参数: 当函数内部出现不能确定的值的时候, 可以使用参数
参数分为:
形参: 形式参数, 函数在定义时如果有多个参数, 每个参数之间用逗号隔开
实参: 实际参数
arguments :
当函数参数个数不确定的时候, 就干脆一个都不写使用 arguments 函数内置对象, 表示实参集合, 也是一种数组形式主要是内置对象都可以直接获取, 不需要定义
注意: arguments 和形参的关系: arguments 和形参是一个值
参数的数据类型
所有的 JS 数据类型都能作为函数参数
对象类型 object array function JSON
基本数据类型: Number String Boolean null undefined
注意: 一般 null 和 undefined 都不会作为函数参数, 没有意义, 而且可能会报错.
关于函数的问题总结
1, 函数名同名, 后面的会覆盖前面的
2, 参数个数 , 实参大于形参个数 从左往右进行赋值, 多了不管, 实参小于形参个数 从左往右进行赋值, a = 10,b=undefined
函数作用域
作用域: 它是指对某一变量和函数具有访问权限的代码空间
它是指对某一变量和函数具有访问权限的代码空间, 在 JS 中, 作用域是在函数中维护的
表示变量或函数起作用的区域, 指代了它们在什么样的上下文中执行, 亦即上下文执行环境
JavaScript 的作用域只有两种:
全局作用域和局部作用域.
局部作用域是按照函数来区分的.
作用域链是 JavaScript 内部中一种变量, 函数查找机制, 它决定了变量和函数的作用范围, 向上查找的方式.
变量提升
变量提升: JavaScript 中, 函数及变量的声明都将被提升到函数的最顶部.
JavaScript 中, 变量 / 函数可以在使用后声明, 也就是变量可以先使用再声明.
注意: 如果变量一开始就初始化, 则不会变量提升 (相当于函数中的局部变量)
预解析针对的是变量和函数
概念: 解析 JS 代码时, 会有一个预解析的操作, 会先找到 var 和 function, 然后逐行解析
浏览器在解析 JS 代码的时候, 会进行一个预解析的操作, 会有一个 JS 解析器 (假设
有的名字), 里面会执行其中的两步:
● 找一些东西 (var function 参数)
● 逐行执行代码
找 var 的时候, 如果存在 var 关键字, 则会将这个变量先存储下来, 存储的形式为 :var
a = undefined, 预解析的时候变量中存的都是 undefined, 等到逐行解析遇到表达式即 + ,- */ % + -- = 等操作才会改变变量的值.
找 function 的时候, 会将整个函数都保存下来.
找参数的时候, 即执行函数时, 函数内部可以看作是一个小的区域, 有自己的预解析, 参数就跟变量 var 一样.
函数返回值
总结: 函数执行的结果需要传递到函数的外部 (调用函数的地方)!!!!--- 返回值
函数执行完以后, 一定有返回值, 将函数中需要传递到外面的内容, 传递出去
如果没有指定返回值. 函数的返回值默认为 undefined,
除非, 我们给函数设置特定的返回值, 在函数中, 只要遇到 return, 则函数后面的代码不再执行
完整的带返回值的格式
function 函数名 (参数 1, 参数 2...){
函数体;
return 返回值;
}
语法格式: return 返回值
注意:
return 一次只能返回一个值, 如果返回多个, 以最后一个为主
函数中只要遇到 return 函数就会结束
获取元素非行内样式
语法格式;
标准浏览器: getComputedStyle(标签). 属性名称
IE 浏览器 : 标签. currentStyle. 属性名称
来源: http://www.jianshu.com/p/ca03faf93406