2022-01-12
1.什么是JavaScript的基本包装类型?
基本包装类型包括:String、Number、Boolean,一般而言原始数据类型是没有方法和属性的,但是字符串、数字,布尔对应的值却存在相应的属性和方法,主要是因为这三个数据类型存在自己的包装对象(简单的认为就是可以new出来的原始数据类型)。例如字符串:var str = ‘abc’.toUpperCase().在这里相当于运行了var s = new String('abc');var str = s.toUpperCase(); s = null;也就可以看出包装类型和引用类型在这边的主要区别是“生存期”,引用类型创建的对象会一直存在在内存中,但是包装类型之存在一瞬间; 所以当我们运行下边的代码:var s1 = ‘abc’; s1.name = 'name'(这里相当于运行了var _s1 = new String('abc');_s1.name = 'name';_s1 = null);console.log(s1.name)//undefined(这里相当于运行了var _s2 = new String('abc');_s2.name = undefined;_s2=null);如果一定要为包装类型数据添加属性和方法,可以添加到原型对象上;
参考解答链接: segmentfault.com/a/119000001…
2. 进程、线程、协程分别是什么以及关系?
进程是应用程序的启动实例,进程拥有代码和打开的文件资源、数据资源、独立的内存空间,由操作系统控制,是操作系统的最小的资源管理单元 线程是程序的实际执行者,它拥有自己的栈空间,由操作系统控制,是操作系统的最小执行单元 协程也被称为微线程,它完全由程序控制。 关系:一个进程最少包含一个线程,一个线程最少包含一个协程;一个协程只能属于一个线程,一个线程只能属于一个进程