千锋教育-做有情怀、有良心、有品质的职业教育机构

当前位置:首页  >  关于学院  >  技术干货  >  html5技术干货  >  正文

web前端培训分享:JS基础知识整理

来源:千锋教育
作者:web前端
2022-03-23
分享

  学习web前端会涉及到很多知识,其中js就是基础篇中比较常见的,那么本期小编就为大家详细的介绍一下web前端培训分享:JS基础知识整理。

JS2

  web前端培训分享:JS基础知识整理

  1 、执行环境:有时也叫环境,是JavaScript 中最为重要的一个概念,执行环境定义了变量或函数有权访问的其他数据。

  2 、变量对象:每一个执行环境都有一个与之关联的变量对象,环境中定义的所有的变量和函数都保存在这个的对象中。

  3 、作用域链:代码在环境中执行时,会创建变量对象的作用域链,保证对执行环境有权访问的所有变量和函数的有序访问。作用域链的前端,始终是当前执行代码所在环境的变量对象。

  4 、活动对象:如果当前执行环境是函数,则将活动对象作为变量对象。

  5 、可执行代码:

  1) 全局代码:例如加载外部的JS 文件或者本地标签内的代码,全局代码不包括 function 体内的代码;

  2) 函数代码:function 体内的代码;

  3)eval 代码:eval() 函数计算某个字符串,并执行其中的JS 代码,比如eval("alert('hello world')") 。

  6 、执行上下文栈:在一个JS 程序中,必定会产生多个执行上下文,JS 引擎会以栈的方式来处理它们,也就是执行上下文栈。

  7 、作用域:JS 是一种没有块级作用域的语言( 包括if 、for 等语句的花括号代码块或者单独的花括号代码块都不能形成一个局部作用域) ,所以js 的局部作用域的形成有且只有函数的花括号内定义的代码块形成的,既函数作用域。

  8 、作用域链:是作用域规则的实现,通过作用域链的实现,变量在它的作用域内可被访问,函数在它的作用域内可被调用。

  作用域链是一个只能单向访问的链表,这个链表上的每个节点就是执行上下文的变量对象,单向链表的头部( 可被第一个访问的节点) 始终都是当前正在被调用执行的函数的变量对象( 活动对象) ,尾部始终是全局活动对象。

  9 、闭包:函数对象可以通过作用域链相互关联起来,函数体内的数据( 变量和函数声明) 都可以保存在函数作用域内,这种特性在计算机科学文献中被称为“闭包”。

  从技术角度来说,JS 的函数都是闭包:函数都是对象,都关联到作用域链,函数内数据都被保存在函数作用域内。

  以上就是为大家分享的关于JS基础知识整理的文章。希望本篇文章能够对想要学习web前端技术的新手人员有所帮助。如需了解更多的web前端培训班、课程、价格、试听等信息,请您留下联系方式,千锋教育课程顾问会尽快联系您,为您定制专属课程,开始您的学习之旅。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

相关推荐

  • vuex中actions与mutations的区别 总体来说:actions 1、用于通过提交mutation改变数据 2、会默认将自身封装为一个Promise 3、可以包含任意的异步操作mutations 1、通过提交commit改变数据 2、只是一个单纯的函数 3、不要使用异步操作,异步操作会导致变量不能追踪
  • vuex数据丢失怎么解决 vuex的 store 中的数据是保存在运行内存中的,当页面刷新时,页面会重新加载 vue 实例,vuex 里面的数据就会被重新赋值,这样就会出现页面刷新vuex中的数据丢失的问题。 如何解决浏览器刷新数据丢失问题呢?
  • 说说vuex的管理操作或理解 vuex有一个仓库概念,将组件公共的state存储在仓库的state属性中,state是只读的,组件只能使用,不能直接修改,修改需要通过 仓库中的mutations模块来修改,这样的好处是 当数据修改便于溯源,且不会因为 多个组件 直接修改数据,导致 组件间数据的互相影响, 同时 当我们仓库中有一个state 数据需要请求 数据接口才能获取时,vuex 设计了一个action模块,在action模块中发送异步请求,得到数据后,提交mutation来修改state。
  • 说说Vuex的工作流程 我们将组件的公共状态定义在 vuex仓库的state中,state是只读的,无法直接修改,必须调动仓库中的某个mutation才能修改状态,getters可以理解为vuex中的计算属性,当我们在某个组件中使用vuex中的某个state时,不是直接使用原值,而是需要派生出一个新的值,就可以定义getters,可以在组件中获取。
  • vuex—个模块中改变state中数据,其他模块如何获取? 由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。为了解决以上问题,Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割:
  • vuex的状态是怎样的,怎么改变状态 vuex的状态储存在仓库的state属性中,state是只读的,无法直接修改必须调用mutation才能修改,const store = new Vuex.Store({,// 在组件中直接出发mutaion,this.$store.commit('ADD_NUM', 10)// 或者助手函数 提交 mutation