首页 > 编程语言 > 详细

JavaScript-函数高级

时间:2021-03-28 22:21:19      阅读:26      评论:0      收藏:0      [点我收藏+]

作用域

在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.样式属性

JavaScript-函数高级

原文:https://www.cnblogs.com/mzxj/p/14589848.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!