ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

预解析、对象、错误

2021-11-27 19:31:07  阅读:65  来源: 互联网

标签:异步 执行 函数 错误 对象 作用域 任务 解析 变量


  1. 单线程

记住一句话:JavaScript语言是单线程的

果没有遇到条件或者循环,程序按照顺序从上往下依次执行

JavaScript 的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript 的主要用途是与用户互动,以及操作 DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript 同时有两个线程,一个线程在某个 DOM 节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?

定时器有两个值一个是回调函数 另一个是时间  先给定时器定一个名字

 window.setTimeout;支循环一次

   window.setInterval多次循环

清除定时器

clearTimeout(定时器名)

clearInterval(定时器名)

同步异步

当变量和函数的声明处在作用域比较靠后的位置的时候,变量和函数的声明会被提升到作用域的开头。

同步任务

    同步任务是指在主线程上排队执行的任务,只有前一个任务执行完毕,才能继续执行下一个任务,当我们打开网站时,网站的渲染过程,比如元素的渲染,其实就是一个同步任务

(3)异步任务

    异步任务是指不进入主线程,而进入任务队列的任务,只有任务队列通知主线程,某个异步任务可以执行了,该任务才会进入主线程,当我们打开网站时,像图片的加载,音乐的加载,其实就是一个异步任务

所有同步任务都在主线程上执行,行成一个执行栈

(2)主线程之外,还存在一个任务队列,只要异步任务有了结果,就会在任务队列中放置一个事件

(3)一旦执行栈中的所有同步任务执行完毕,系统就会读取任务队列,看看里面还有哪些事件,那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行

(4)主线程不断的重复上面的第三步

异步编程主要有:1、setTimeout  2、ajax回调函数  3、promise对象   4、generator函数 5、事件机制(这些我们后期再学)

预解析

函数提升

变量提升

变量的提升只是声明的提升

函数同名

同名的函数,后面的会覆盖前面的

变量和函数同名

当出现变量声明和函数同名的时候,只会对函数声明进行提升,变量会被忽略

同名的函数与变量,变量会覆盖函数

预解析是分作用域的

函数表达式不会提升

函数表达式,并不会被提升函数会提升

全局作用域

直接编写在 script 标签之中的JS代码,都是全局作用域;

  或者是一个单独的 JS 文件中的。

局部作用域(函数作用域):

在函数内部就是局部作用域,这个代码的名字只在函数的内部起作用

  调用函数时创建函数作用域,函数执行完毕之后,函数作用域销毁;

每调用一次函数就会创建一个新的函数作用域,它们之间是相互独立的。

将这样的所有的作用域列出来,可以有一个结构: 函数内指向函数外的链式结构。就称作作用域链。

隐式全局变量

声明变量使用`var`, 如果不使用`var`声明的变量就是全局变量( 禁用 )

用域及作用域链

全局作用域---全局变量

 局部作用域---局部变量---只在当前作用域下有效

 块作用域?(js中没有)

只有函数才能产生局部作用域

作用域链的查找规则:

    先从当前的作用域中查找,如果有,就返回

    如果没有从上一级查找,有就返回,没有继续上一级查找,直到全局

    如果全局没有,就报错

 

标签:异步,执行,函数,错误,对象,作用域,任务,解析,变量
来源: https://www.cnblogs.com/zhangchenbo/p/15612803.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有