在js中可以分全局作用域和局部作用域(私有作用域)
全局作用域:在srcript标签内,函数之外称之为全局作用域
局部作用域:(私有作用域):函数执行形成私有作用域
全局变量:全局作用域下定义的变量或者方法称之为全局变量方法
局部变量:在局部作用域中定义的变量或方法称之为局部变量或方法
预解析(变量提升)
js代码运行到浏览器,浏览器提供了一个供js代码执行的环境,在代码执行之前先进行了预解析;会把全局作用域下所有带有var 和 function关键字的进行预解析 (全局作用域下预解析)(预解析完成代码从上到下执行)
预解析分为以下两部分
预解析的时候,带有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 值;
标准浏览器下(只读) IE8及以下不兼容
getComputedStyle(元素对象).样式属性;
IE下独有的
元素对象.currentStyle.样式属性
原文:https://www.cnblogs.com/mzxj/p/14589848.html