摘要: 1、如何证明js执行时单线程的? setitmeout()的回调函数是在主线程执行的。 定时器回调函数只有在运行栈中的代码全部执行完后才有可能执行。 2、为什么js要用单线程模式,而不用多线程 javascript的单线程,于它的用途有关。 作为浏览器脚本语言,javascript的主要用途是与用户 阅读全文
posted @ 2022-03-15 18:58 青仙 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 1、定时器真是定时执行的吗? 定时器并不能保证真正定时执行。 一般会延迟一丁点(可以接受),也有可能延迟很长时间(不能接收) 2,定时器回调函数是在分线程(异步)执行的吗? 在主线程执行的,js是单线程。 3,定时器是如何实现的? 事件循环模型。 阅读全文
posted @ 2022-03-15 18:02 青仙 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 浏览器内核 支撑浏览器运行的最核心的程序。(浏览器也是程序,也是用代码写的,内核就是一些比较底层的代码。) 不同的浏览器的内核可能不一样。比如:chrome用的内核叫:webkit,IE用的叫Trident。 内核有很多模块组成 阅读全文
posted @ 2022-03-15 17:47 青仙 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 进程: 程序的一次执行,它占有一片独立的内存空间。 可以任务管理器查看所有进程。 线程 是进程内的一个独立执行单位。 是程序执行的一个完整流程。 是cpu的最小调度单位。 何为多进程与多线程? 多进程运行 :一应用程序可以同时启动多个实例运行。 多线程:在一个进程内,同时有多个线程运行。 相关知识 阅读全文
posted @ 2022-03-15 16:54 青仙 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 实现继承方式 方式一:原型链继承 套路: 1,定义父类型构造函数。 2,给父类型的原型添加方法。 3,定义子类型的构造函数。 4,创建父类型的对象赋值给子类型的原型。 5,将子类原型的构造属性设置为子类型。 6,给子类型原型添加方法 7,创建子类型的对象:可以调用父类型的方法 关键: 子类型的原型为 阅读全文
posted @ 2022-03-15 11:47 青仙 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 方式一:object构造函数模式 套路:先创建空object对象,再动态添加属性/方法。 使用场景:起始时不确定对象内部的数据。 缺点:语句太多。 var person=new Object(); person.name='tom'; person.age=18; person.setName=fu 阅读全文
posted @ 2022-03-15 11:09 青仙 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 1 这题没有产生闭包 var name="The Window"; var obj={ name:"My Object", getNameFunc:function(){ return function(){ return this.name; } } } alert( obj.getNameFun 阅读全文
posted @ 2022-03-15 10:08 青仙 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 闭包的缺点和解决 缺点: 函数执行完成后,函数内的局部变量没有释放,占用内存时间会变长。 容易造成内存泄漏。 解决: 1、能不用闭包就不用。 2、及时释放。 内存溢出 一种程序运行出现的错误。 当程序运行需要的内存超过了剩余的内存时,就会抛出内存溢出的错误。 内存泄漏 占用的内存没有及时释放。 内存 阅读全文
posted @ 2022-03-15 09:12 青仙 阅读(381) 评论(0) 推荐(0) 编辑