进程线程和变量相关的概念

1.进程和线程的区别

  • 根本区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位

  • 资源开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。

  • 包含关系:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。

  • 内存分配:同一进程的线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的

  • 影响关系:一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程都死掉。所以多进程要比多线程健壮。

  • 执行过程:每个独立的进程有程序运行的入口、顺序执行序列和程序出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制,两者均可并发执行

     JS是单线程的,是指它的主线程是单线程。如果主线程遇到一个非常耗时的任务,它就找别的线程来帮忙。别的线程把活干完后,需要把结果给主线程。非常耗时的任务:
     eg:网络请求数据  读取文件操作 ...... 
    

2.变量声明:

变量 = 变量名 + 变量值

声明一个变量:(不能重复声明,不能遗漏声明,var变量会发生提升)
一次声明一个变量 var name = "Z"; var age = 12;
一次声明多个变量 var a, b, c;

3.声明变量和定义变量的区别:

var a; 声明变量
a = 1; 定义变量
var b = 1; 声明变量的同时给这个变量赋值,声明并定义变量

4.全局变量 和 局部变量

全局变量在函数内外都可以访问
局部变量只能在函数内可以访问,函数外不能访问

5.JS代码的解析与执行:

1,代码块可以有多个,上面的代码块不能使用下面的代码块中的数据,下面代码块可以使用上面代码块中的数据。
2,预编译,在Js代码真正执行这前有一个预编译的过程 , 称为提升:

  • 变量提升
    var变量可以提升,没有var的变量是不会提升的
    循环变量也可以提升
    函数内部加var的变量也会提升,提升到了函数内部的最前面

  • 函数提升
    函数声明也会提升,提升到代码块的最前面
    函数表达式不会提升,原因函数表达式本质是一个变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

么心么肺

你的鼓励将是我学习的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值