作用域
在js中可以分全局作用域和局部作用域(私有作用域)
全局作用域:在srcript标签内,函数之外称之为全局作用域
局部作用域:(私有作用域):函数执行形成私有作用域
全局变量:全局作用域下定义的变量或者方法称之为全局变量方法
- 特点:可以在任意地方使用或修改
局部变量:在局部作用域中定义的变量或方法称之为局部变量或方法
- 特点:只能在当前作用域下使用 ,外界不能够使用或修改
预解析/变量提升
预解析(变量提升)
js代码运行到浏览器,浏览器提供了一个供js代码执行的环境,在代码执行之前先进行了预解析;会把全局作用域下所有带有var 和 function关键字的进行预解析 (全局作用域下预解析)(预解析完成代码从上到下执行)
预解析分为以下两部分
- 声明:var a; 只是声明了没有赋值
- 定义 a = 100; 赋值的操作
预解析的时候,带有var关键字的是只声明不定义,而带有function关键字是声明+定义
函数执行
首先函数执行形成私有作用域(局部作用域),函数体中代码从上到下执行,函数执行完毕会自动销毁;
全局下的预解析
console.log(a,b);//undefined undefined
var a = 10;
var b = 10;
console.log(a,b);//10 10
fn();
function fn(){
console.log("哈哈");
}
fn();
fn();
局部作用域下的预解析
函数执行形成一个局部作用域(私有作用域),函数体中的代码从上到下执行之前先进行形参赋值和预解析, (私有作用下预解析,解析的是私有作用域下的带有var和function关键字)(预解析完成代码从上到下执行) 其它的和全局作用域下的预解析是一样的;
作用域链
首先作用域链是一种查找机制,在当前作用域下用到某个变量或方法,先看当前作用域下有没有,没有往上一级作用域进行查找,上一级作用域没有再往上一层作用域进行查找依次类推,直到找到全局作用域为止;找不到就就报错了
函数的返回值
函数默认是没有返回值的,默认值是undefined
就是将函数内部的值返回给外界
语法:return 值;
- return的作用
- 首先是将函数内部的值返回给外界 (需要什么就return什么即可)
- 退出当前函数 (一旦遇到return函数就结束了)
- return之后的代码就不再执行了
获取经过浏览器渲染的样式
标准浏览器下(只读) IE8及以下不兼容
getComputedStyle(元素对象).样式属性;
IE下独有的
元素对象.currentStyle.样式属性
浙公网安备 33010602011771号