函数的概念以及作用:
概念:函数是由事件驱动的或者当它被函数名调用时可重复使用的代码块
作用:用来保存代码块,在需要的时候调用,函数在没有调用之前是没有任何作用的
函数只有被调用了才会起作用
函数参数
函数的参数: 当函数内部出现不能确定的值的时候,可以使用参数
参数分为:
形参:形式参数,函数在定义时如果有多个参数,每个参数之间用逗号隔开
实参:实际参数
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.属性名称
网友评论