reflect 面向对象的变成思想 类 从很多对象中抽取出来的公有的特征行为 抽象描述 用来描述一组对象 对象 现实生活中 先存在了好多对象 很多相同特征 相同行为 类是用来描述一组对象 反射机制认为是用来描述一组类...可以与之前学习File对比着学习 Class 用来描述类本身 Package 用来描述类所属的包 Field 用来描述类中的属性 Method 用来描述类中的方法 Constructor 用来描述类中的构造方法...interface 1024--abstract 2.String name = getName();获取名字 3.String simpleName = getSimpleName();简单名 4.Package
一个浏览器通常有几个常驻线程: 渲染引擎线程:顾名思义,该线程负责页面的渲染 JS引擎线程:负责JS的解析和执行 定时触发器线程:处理定时事件,比如setTimeout、setInterval 事件触发线程...渲染线程在执行任务的时候,JS引擎线程会被挂起。因为JS可以操作DOM,若在渲染中JS处理了DOM,浏览器可能就不知所措了。 2....JS引擎 通常讲到浏览器的时候,我们会说到两个引擎:渲染引擎和JS引擎。...JS引擎可以说是JS虚拟机,负责JS代码的解析和执行。...之所以说JavaScript是单线程,就是因为浏览器在运行时只开启了一个JS引擎线程来解析和执行JS。那为什么只有一个引擎呢?如果同时有两个线程去操作DOM,浏览器是不是又要不知所措了。
JS为什么是单线程的? JS最初被设计用在浏览器中,那么想象一下,如果浏览器中的JS是多线程的。...那么现在有2个进程,process1 process2,由于是多进程的JS,所以他们对同一个dom,同时进行操作。...2 JS为什么需要异步? 如果JS中不存在异步,只能自上而下执行,如果上一行解析时间很长,那么下面的代码就会被阻塞。...对于用户而言,阻塞就意味着"卡死",这样就导致了很差的用户体验 3 JS单线程又是如何实现异步的呢? ...是通过的事件循环(event loop),理解了event loop机制,就理解了JS的执行机制。
JS 是单线程 JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。...这样所导致的问题是: 如果 JS 执行的时间过长,这样就会造成页面的渲染不连贯,导致页面渲染加载阻塞的感觉。 2....于是,JS 中出现了同步任务和异步任务。 同步 前一个任务结束后再执行后一个任务,程序的执行顺序与任务的排列顺序是一致的、同步的。...JS中所有任务可以分成两种,一种是同步任务(synchronous),另一种是异步任务(asynchronous)。 ...JS执行机制(事件循环) ? ? 4.
JS内存机制 js具有自动垃圾回收机制,周期性的找出那些不再继续使用的变量,然后释放其占用的内存。 所以在闭包中,如果引用了外部的变量,则无法进行释放和回收,造成内存泄漏。 2....堆和栈 js的内存,分为堆内存和栈内存。 2.1 栈内存 存储基本数据类型:Number、String、Null、Undefined、Boolean、Symbol、引用类型的指针。
JS执行机制 以下代码执行的结果是什么?...这样所导致的问题是: 如果 JS 执行的时间过长,这样就会造成页面的渲染不连贯,导致页面渲染加载阻塞的感觉。...于是,JS 中出现了同步任务和异步任务。 同步 前一个任务结束后再执行后一个任务,程序的执行顺序与任务的排列顺序是一致的、同步的。...1.3 JS执行机制(事件循环) 1. 先执行执行栈中的同步任务。 2. 异步任务(回调函数)放入任务队列中。 3....由于主线程不断的重复获得任务、执行任务、再获取任务、再执行,所以这种机制被称为事件循环( event loop)。
JS 是单线程 JavaScript语言的一大特点就是单线程,也就是说,同-个时间只能做一件事。...这样所导致的问题是: 如果 JS 执行的时间过长,这样就会造成页面的渲染不连贯,导致页面渲染加载阻塞的感觉。 2....于是,JS 中出现了同步任务和异步任务。 同步 前一个任务结束后再执行后一个任务,程序的执行顺序与任务的排列顺序是一致的、同步的。...JS中所有任务可以分成两种,一种是同步任务(synchronous),另一种是异步任务(asynchronous)。 ...JS执行机制(事件循环) ? ? 由于主线程不断的重复获得任务、执行任务、再获取任务、再执行,所以这种机制被称为事件循环( event loop) .
Js的GC机制 在Js七种基本类型中的引用类型Object的变量其占据内存空间大且大小不固定,在堆内存中实际存储对象,在栈内存中存储对象的指针,对于对象的访问是按引用访问的。...当其作用域销毁后变量也就随之销毁,而使用引用访问的堆区变量,在一个作用域消失后还可能在外层作用域或者其他作用域仍然存在引用,不能直接销毁,此时就需要通过算法计算该堆区变量是否属于不再需要的变量,从而决定是否需要进行内存回收,在Js...引用计数算法 对于引用计数垃圾回收算法,把对象是否不再需要简化定义为该对象有没有其他变量或对象引用到它,如果没有引用指向该对象,该对象将被垃圾回收机制回收。
一、简单原型机制介绍 继承是OO语言的标配,基本所有的语言都有继承的功能,使用继承方便对象的一些属性和方法的共享,Javascript也从其他OO语言上借鉴了这种思想,当一个函数通过"new"创建出一个实例后...a.fun===b.fun)//true 总结: 1、我们将定义在原型上的方法(属性)叫做原型方法,原型方法(属性)被所有的实例所共享 2、但是我们不能加所有的属性和方法都定义到原型上,JS
JS继承机制总结 继承就是子类可以使用父类的所有功能,并且对这些功能进行扩展。 JS继承机制主要为原型链继承、构造函数继承、组合继承、寄生继承、寄生组合继承、原型式继承和混合式继承。
触碰完成以后再把手拿出来,正好是一个相反的过程,这就与我们的事件流机制是一个道理。 事件绑定 下面来看一下下面这个示例代码: <!
本文阐述了浏览器端和node端的js运行机制执行的过程,还进行了两者的运行机制比较,以及同步任务和异步任务的说明,两种异步任务的必要性,以及各自有哪些回调,部分回调的优先级。...JS运行机制复述 首先js执行,会有一个函数执行栈(stack),一个任务队列(task queue),一个微任务队列(microtask queue),事件循环(event loop)。...Node.js中的事件循环 上段讲的是浏览器端的事件轮询,而node是多线程机制,由libuv库负责Node API的执行,将它分配给不同的线程,形成一个事件循环。...浏览器和Node端事件循环的差别 两者的运行机制完全不同,实现机制也不同。 node.js可以理解成4个宏任务队列(timer、I/O、check、close)和2个微任务队列。...JS异步任务 js的异步任务分为两种:宏任务、微任务。一个宏任务里面可以拥有多个微任务,在执行js代码块的时候才会去执行内部的微任务。 宏任务 macrotask,也叫tasks。
* 垃圾回收GC的全拼是 Garbage Collection 其在维基百科的定义是:在计算机科学中,垃圾回收是一种自动的内存管理机制。...* JavaScript具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中使用的内存。...* 垃圾收集机制的原理: * 找出那些不再继续使用的变量,然后释放其占用的内存。 * 为此,垃圾收集器会按照固定的时间间隔(或代码执行中预定的收集时间),周期性地执行这一操作。
Js异步机制 JavaScript是一门单线程语言,所谓单线程,就是指一次只能完成一件任务,如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。...执行机制 为了解决上述问题,Javascript将任务的执行模式分为两种:同步Synchronous与异步Asynchronous,同步或非同步,表明着是否需要将整个流程按顺序地完成,阻塞或非阻塞,意味着你调用的函数会不会立刻告诉你结果...console.log("我先执行"); 异步机制 首先来看一个例子,与上文一样来测试一个异步执行的操作 setTimeout(() => console.log("我在很长时间之后才执行"), 0);...主线程,注意我并没有设置一个死循环,假如我在此处设置死循环来阻塞主线程,那么设置的setTimeout回调函数将永远不会执行,此外由于渲染线程与JS引擎线程是互斥的,Js线程在处理任务时渲染线程会被挂起...Event Loop 主线程从任务队列中读取事件,这个过程是循环不断的,所以整个的这种运行机制又称为Event Loop,Event Loop是一个执行模型,在不同的地方有不同的实现,浏览器和NodeJS
代码块: JS中的代码块是指由标签分割的代码段。JS是按照代码块来进行编译和执行的,代码块间相互独立(即就算代码块1出错,但不影响代码块2的加载和执行),但变量和方法共享。...的加载原理: 在加载HTML页面的时候,当浏览器遇到内嵌的JS代码时会停止处理页面,先执行JS代码,然后再继续解析和渲染页面。...由于现代浏览器都允许并行下载JS文件,因此标签在下载外部资源时不会阻塞其他的标签。遗憾的是JS下载过程仍然会阻塞其他资源的下载。...JavaScript的任务列队: JS任务可以分为两种:一种是同步任务,另一种是异步任务。注意,只有主线程空了,才会去读取"任务队列",这就是JS的运行机制,这个过程会不断重复。...定时器功能主要由setTimeout()和setInterval()这两个函数来完成,它们的内部运行机制完全一样,区别在于前者指定的代码是一次性执行,后者则为反复执行。
Package Control 在Sublime下是很有用的东西。经常我们用到的sublime拓展的时候用到他。...urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package...Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists...= h else 'Please restart Sublime Text to finish installation') 未经允许不得转载:RffanLAB|Rffan实验室 » Sublime Package...Control (Package install) 代码
数据包(data package)是用来加载和保存你应用程序中的数据的东西,包含41个类,但是其中有三个类比所有其他类更加重要——Model,Store和Ext.data.proxy.Proxy。...关联不仅仅对于加载数据有帮助——它们对于创建新的记录也很有用: user.posts().add({ title: 'Ext JS 4.0 MVC Architecture', body...: 'It\'s a great Idea to structure your Ext JS Applications using the built in MVC Architecture...' }...{ id : 12, title: 'All about data in Ext JS
想要了解JS底层运行机制,首先要明白这几个概念: 为什么js能在浏览器中执行 众所周知,计算机是有内存的,计算机会在内存中开辟一块空间去供js执行,这个空间我们称之为执行栈 全局对象和全局变量对象是一样的吗...全局变量对象,在script标签内的代码执行时,会形成EC(G)的栈,EC(G)进栈(执行环境栈,EC Stack)执行,形成全局执行上下文(VO(G)),供给下级作用域 js中上下文有哪些 全局上下文... 初始化作用域链 scope chain 初始化this 初始化arguments 形参赋值 变量提升 3.函数体代码执行 4.出栈释放 ---- JS...底层运行机制(成哥版,腾讯课堂有免费公开课) 函数都是对象,对象身上就会有属性,有的属性可以访问,有的属性不能直接访问 函数执行多次会生成多个上下文,每个执行上下文都是独一无二的,函数执行完,执行上下文被销毁...(只是指向被销毁,具体的执行上下文会定期被垃圾机制回收) 函数定义的时候,会生成[[scope]]属性,用来存放当前函数的作用域,[[scope]]属性里面存在scope chain作用域链 scope
JS的内存生命周期: 1、分配你所需要的内存 2、使用分配到的内存(读、写) 3、不需要时将其释放、归还 var a = 20; // 在内存中给数值变量分配空间 alert(a + 100); //...使用内存 a = null ; // 使用完毕 js垃圾回收机制: 1、自动垃圾回收机制就是找出那些不再继续使用的值,然后释放其占用的内存空间。...2、js最常用的是通过标记清除的算法来找到哪些对象是不再继续使用的,上面例子中的a = null 其实就是做了一个释放引用的操作,让a原本对应的值失去引用,脱离执行环境,这个值会在下一次垃圾收集器执行操作时被找到并释放...JS内存空间管理: js具有自动垃圾回收机制。虽然开发的时候不用过于关心内存,因为分配和回收都实现了自动管理。但是了解自己的写的代码,在执行的过程中发生了什么,有助于我们写出更加优秀的代码。...例如,其 BOM 和 DOM 中的对象就是使用 C++以 COM(Component Object Model,组件对象模型)对象的形式实现的,而 COM对象的垃圾收集机制采用的就是引用计数策略。
Node.js 不为每个客户连接创建一个新的线程, 而仅仅使用一个线程。当有用户连接了, 就触发一个内部事件,通过非阻塞 I/O、事件驱动机制,让 Node.js 程序宏观上也是并行的。...可以说这样的事件处理机制就是标准的事件驱动机制。...以下实例,我们使用 npm 命令安装常用的 Node.js web框架模块 express //--save 安装并添加条目到 package.json 文件的 dependencies。...因此,需要一种机制,在模板安装的时候提醒用户,如果A和B一起安装,那么B必须是2.0模块。 peerDependencies字段,就是用来供插件指定其所需要的主工具的版本。...这个字段的默认值是模块根目录下面的index.js。 4.10.7、config 字段 config字段用于添加命令行的环境变量。 下面是一个package.json文件。
领取专属 10元无门槛券
手把手带您无忧上云