单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new

这篇具有很好参考价值的文章主要介绍了单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

单线程

进程

  • cpu 资源分配的最小单位
  • 一个进程可以有多个线程

线程

  • cpu调度的最小单位
  • 线程建立在进程的建立基础上的一次程序的运行单位

线程分为:单线程 多线程

  • 单线程:js是单线程 (同一个时间只能完成一个任务)
  • 多线程:百度是多线程

同步

  • 同步任务是指在主线程上排队的任务,只有当前一个任务执行完毕,才能执行下一个任务。需要等待的

异步

  • 异步任务不进入主线程,会进入任务队列,任务队列通知主线程,某个异步任务可以执行了,不需要等待

js中的异步操作

1、定时器函数
  • 1、回调函数:匿名函数作为参数

  • 2、 var 定时器名称 = setTimeout(回调函数,时间间隔)

    • 隔一段时间之后再去执行,只执行一次

    • clearTimeout(定时器的名称)

      单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端

  • 3、 var 定时器函数 = setInterval(回调函数,时间间隔)

    • 每隔一段时间执行一次

    • clearInterval(定时器的名称)

      单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端

  • 综合案例:
    单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端

2、网络请求(ajax,aixos,wx.request
3、文件的读写(node)
4、Promise对象
5、generator函数
6、await/async函数
7、事件函数

预解析

  • JavaScript引擎在对JavaScript代码进行解释执行之前,会对JavaScript代码进行预解析在预解析阶段,会将以关键字var和function开头的语句块进行解析

以下情况会发生预备解析

1、函数声明的提升

单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端

2、变量的提升(只是声明的提升,赋值不会提升)

单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端

3、函数声明 函数名与变量声明的变量名重复,函数声明提升,变量不提升

单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端

4、函数表达式不能提升

单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端

5、提升不会超出作用域的范围

单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端

6、函数声明,变量名重复 后面会覆盖

  • 后面会覆盖前面的

    单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端

域解析案例:

  • 案例1:
    单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端
  • 案例2:
    单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端

作用域

全局作用域

1、范围:直接编写在script标签之中的js代码,或者编写在外部的js文件中的js代码
2、全局变量:在全局作用域中定义的变量。在任何作用域内都起作用
3、生命周期:浏览器打开时创建,关闭时销毁
4、所有的全局变量都是window对象的属性,所有的全局变量都是window对象的方法

局部作用域()

1、范围:有且只有函数才能产生局部作用域
2、局部变量:在局部作用域内定义的变量。只有在当前局部作用域内有效
3、生命周期:函数调用时创建,调用完成后立即销毁

隐式全局变量

1、在函数中没有var声明
2、在函数中没有用var声明,且用分号隔开
3、在函数中没有用var声明,且用=号隔开

单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端

作用域链的查找规则

  • 先从当前的作用域内查找,如果有就返回如果没有就向上一级作用域内朝找,直到全局作用域,如果全局还没有,直接报错

对象

什么是对象?

  • 世间万物皆为对象
  • 电脑:
    • 特征:颜色、价格、尺寸… 对象的属性
    • 行为:敲代码、玩游戏、看视频… 对象的方法

js中的对象

  • 现实实物的一个抽象
  • 对象是无序属性的集合(属性名重复会发生覆盖)

创建对象的方式(四种)

1、字面量创建

单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端

2、new Object()

单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端

3、工厂模式

单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端

4、构造函数

单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端

对象属性值的获取和对象方法的调用

  • 对象.属性
  • 对象.方法()

构造函数

  • 1、函数
  • 2、模板
  • 3、函数的首字母一般大写

new关键字的作用:

  • 1、创建新对象===实例化对象
  • 2、可以让构造函数中的this指向实例化对象

函数中this的指向问题:

1、在构造函数中this指向实例化对象

2、在自定义对象的函数(方法)中指向this指向当前的对象

3、在普通函数中this指向window

单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端

对象的遍历

  • for in 循环
  • for(x in obj){
    x是对象的属性名
    obj[x]是对象的属性值(不可以用 . )
    }

对象添加变量名

  • 对象[属性名] = “属性值”

单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new,css,前端文章来源地址https://www.toymoban.com/news/detail-816042.html

到了这里,关于单线程、同步、异步、预解析、作用域、隐式全局变量、对象创建、new的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C语言趣味教程】(4) 变量:代码注释 | 变量的声明 | 初始化与赋值 | 作用域与生命周期 | 局部变量与全局变量

      🔗 《C语言趣味教程》👈 猛戳订阅!!! 0x00 引入:注释的作用 \\\"程序员最讨厌两种人:一种是不写注释的人,一种是让我写注释的人。\\\" 相信大家对注释早已有所耳闻,对于注释,C 语言有两种注释风格,我们下面会逐个讲解。   但在这之前,我们先来了解了解注释的作

    2024年02月15日
    浏览(41)
  • 【已解决】C语言实现多线程的同步与异步

    说真的写了这篇博文时,才知道c语言本身不支持多线程,而是一些windowsapi让c语言拥有多线程的能力,那下面内容就以打开对话框为例,展现如何实现多线程的同步与异步。 想要实现c语言打开多个对话框的多线程同步与异步 代码效果 对代码的查阅会发现,关键在于定义多线

    2024年02月02日
    浏览(31)
  • 面向对象【成员变量与局部变量、方法声明与作用】

    Java中的成员变量是指 类中声明的变量 ,也称为实例变量或属性。它们与方法一样属于类的成员,不同之处在于,它们存储在对象(堆)中而不是栈中,并且每个对象都有自己的一组值。 成员变量可以用来描述一个对象的状态,例如人的年龄、学生的姓名等。它们可以具有pub

    2024年02月10日
    浏览(54)
  • Python入门【变量的作用域(全局变量和局部变量)、参数的传递、浅拷贝和深拷贝、参数的几种类型 】(十一)

     👏作者简介:大家好,我是爱敲代码的小王,CSDN博客博主,Python小白 📕系列专栏:python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 📧如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀 🔥如果感觉博主的文章还不错

    2024年02月15日
    浏览(45)
  • Jmeter(二十七):BeanShell PostProcessor跨线程全局变量使用

    在性能测试中,两个相关联的接口不一定都在同一个线程组,遇见这种情况时,我们要进行跨线程组传参,此处用登录和查询配送单两个请求举例; 1、登录请求中配置json提取器,将接口返回的token保存在变量中;  2、登录请求中配置BeanShell 后置处理程序,将token保存到全局

    2024年02月11日
    浏览(36)
  • 线程同步-信号量-互斥量-条件变量

    线程同步其实实现的是线程排队。 防止线程同步访问共享资源造成冲突。 多个线程访问共享资源的代码有可能是同一份代码,也有可能是不同的代码;无论是否执行同一份代码,只要这些线程的代码访问同一份可变的共享资源,这些线程之间就需要同步。 1. 问题 同一个进程

    2023年04月16日
    浏览(31)
  • 案例15-ArrayList线程不安全,共用全局变量导致数据错乱问题,占用内存情况

    存入redis的值,可能会出现错误的情况。如果出现错误,接口将会报错。 多个方法一起修改一个 公共变量 的值,造成数据混乱,导致存入redis中的key值错误 还有每次登陆都会重现创建一个对象,放到公共变量中,遇到并发,对象会被大量地创建, 上一个对象会失去引用,等

    2024年02月02日
    浏览(37)
  • 【探索Linux】—— 强大的命令行工具 P.21(多线程 | 线程同步 | 条件变量 | 线程安全)

    在上一篇文章中,我们详细探讨了多线程编程的基础概念,包括线程互斥、互斥锁以及死锁和资源饥饿等问题。我们了解到,在多线程环境下,为了防止数据竞争和保证程序的正确性,需要采用一定的同步机制来协调线程之间的执行顺序。本篇文章将继续深入探讨多线程编程

    2024年02月05日
    浏览(39)
  • 【并发编程】自研数据同步工具的优化:创建线程池多线程异步去分页调用其他服务接口获取海量数据

    前段时间在做一个数据同步工具,其中一个服务的任务是调用A服务的接口,将数据库中指定数据请求过来,交给kafka去判断哪些数据是需要新增,哪些数据是需要修改的。 刚开始的设计思路是,,我创建多个服务同时去请求A服务的接口,每个服务都请求到全量数据,由于这些

    2024年02月12日
    浏览(32)
  • jmeter如何将提取到的token值设置为全局变量使其可以跨线程组使用

    我们用到jmeter去进行接口测试时,经常会遇到要跨线程组使用变量的场景,下面用json提取器提取token值并设置为全局变量的方法做为示范: 需要用到的是: 线程组---http请求---json提取器----Beanshell取样器 ;其他元件大家根据自己需要去配置即可,json提取器和正则表达式提取器

    2024年02月16日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包