![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaScript
JavaScript基础知识
skies_7
这个作者很懒,什么都没留下…
展开
-
JavaScript中的对象池
1 概述对象池维护一个装载着空闲对象的池子,将用过的对象保存起来,等下一次需要这种对象的时候,再拿出来重复使用,从而在一定程度上减少频繁创建对象所造成的开销。用于充当保存对象的“容器”的对象,被称为“对象池”(Object Pool,或简称Pool)。2 对象池的运用场景并非所有对象都适合拿来池化――因为维护对象池也要造成一定开销。对生成时开销不大的对象进行池化,反而可能会出现“维护对象池的开销”大于“生成新对象的开销”,从而使性能降低的情况。但是对于生成时开销可观的对象,池化技术就是提高性能的有效策原创 2022-03-14 23:09:04 · 1595 阅读 · 0 评论 -
JavaScript中的ECMAScript、BOM、DOM
1 JavaScipt的组成JavaScript由ECMAScript(核心)、BOM(浏览器对象模型)、DOM(文档对象模型)三部分组成。2 ECMAScriptECMAScript是ECMA-262定义的一门语言,web浏览器是ECMAScript实现可能存在的一种宿主环境,主要定义了如下:语法类型语句关键字保留字操作符全局对象3 BOMBOM用于支持访问和操作浏览器的窗口,主要包括:1 弹出新浏览器窗口2 移动、缩放和关闭浏览器窗口3 navigator对象,提供浏原创 2022-03-14 18:29:02 · 1417 阅读 · 0 评论 -
为什么JavaScript是单线程
JavaScript是单线程的原因javascript从诞生之日起就是一门单线程的非阻塞的脚本语言。这是由其最初的用途来决定的:与浏览器交互。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?另外个原因大概是不想让浏览器变得太复杂,因为多线程需要共享资源、且有可能修改彼此的运行结果,对转载 2022-03-06 23:05:05 · 527 阅读 · 0 评论 -
深拷贝和浅拷贝的区别
深拷贝与浅拷贝的区别1 基本数据类型与引用数据类型1.1 基本数据类型存储在栈(stack)中的简单数据段,按值访问的,数据大小确定,内存空间大小可以分配,它们是直接按值存放的。基本数据类型分为Boolean、Null、Undefined、String、Number、Symbol。1.2 引用数据类型存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存地址。引用数据类型也是对象数据类型,分为Object、Array、Function、Date、M原创 2022-03-05 17:44:25 · 142 阅读 · 0 评论 -
闭包的理解
1 闭包的概念有权访问另一个函数作用域中的变量的函数;一般情况就是在一个函数中包含另一个函数。从官方定义我们知道闭包是一个函数,只不过这个函数可以访问到另一个函数的作用域。2 闭包的原理闭包的实现原理,其实是利用了作用域链的特性,我们都知道作用域链就是在当前执行环境下访问某个变量时,如果不存在就一直向外层寻找,最终寻找到最外层也就是全局作用域,这样就形成了一个链条。例如:function person(){ var age = 18; function cat(){原创 2022-03-06 00:29:37 · 570 阅读 · 0 评论