-
Commonjs是一套规范查看全部
-
作用域:与调用函数,访问变量的能力有关 作用域分为:局部和全局(在局部作用域里可以访问到全局作用域的变量,但在局部作用域外面就访问不到局部作用里面所设定的变量) 上下文:与this关键字有关 是调用当前可执行代码的引用 this总是指向调用这个的方法的对象 js里的this 通常是当前函数的拥有者 this 是js的一个关键字 代表函数运行时自动生成的一个内部对象 只能在函数内部使用 1.作为对象的方法 this在方法内部,this就指向调用这个方法的对象 2.函数的调用 this指向执行环境中的全局对象(浏览器->window nodejs->global) 3.构造函数 this所在的方法被实例对象所调用,那么this就指向这个实例对象 更改上下文方法(更改this指向的内容,可方便地实现继承): call(list); apply(array); 根据call()、apply()改变上下文this指向的特性,也可以方便实现继承查看全部
-
1. 什么是回调? 回调是异步编程时的基础,将后续逻辑封装成起始函数的参数,逐层嵌套 2. 什么是同步/异步? 同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。 3. 什么是I/O? 磁盘的写入(in)磁盘的读取(out) 4. 什么的单线程/多线程? 一次只能执行一个程序叫做单线程 一次能执行多个程序叫多线程 5. 什么是阻塞/非阻塞? 阻塞:前一个程序未执行完就得一直等待 非阻塞:前一个程序未执行完时可以挂起,继续执行其他程序,等到使用时再执行 6. 什么是事件? 一个触发动作(例如点击按钮) 7. 什么是事件驱动? 一个触发动作引起的操作(例如点击按钮后弹出一个对话框) 8. 什么是基于事件驱动的回调? 为了某个事件注册了回调函数,但是这个回调函数不是马上执行,只有当事件发生的时候,才会调用回调函数,这种函数执行的方式叫做事件驱动~这种注册回调就是基于事件驱动的回调,如果这些回调和异步I/O(数据写入、读取)操作有关,可以看作是基于回调的异步I/O,只不过这种回调在nodejs中是有事件来驱动的 9. 什么是事件循环? //事件循环Eventloop,倘若有大量的异步操作,一些I/O的耗时操作,甚至是一些定时器控制的延时操作,它们完成的时候都要调用相应的回调函数,从而来完成一些密集的任务,而又不会阻塞整个程序执行的流程,此时需要一种机制来管理,这种机制叫做事件循环. 总而言之就是:管理大量异步操作的机制叫做事件循环 Event Loop: 回调函数队列。异步执行的函数会被压入这个队列; 队列被循环查询。查看全部
-
http协议 http 客户端发起请求,创建端口 http 服务器在端口监听客户端请求 http 服务器向客户端返回状态和内容 http的详细流程 1.浏览器搜索自身的DNS缓存 2.搜索操作系统自身的DNS缓存(浏览器没有找到缓存或缓存失效) 3.读取本地的host文件 4.浏览器发起一个DNS的一个系统调用 5.浏览器获得域名对应的IP地址后,发起http“三次握手” 6.TCP/IP连接建立起来后,浏览器就可以向服务器发送HTTP请求了 7.服务器端接受到了这个请求,根据路径参数,经过后端的一些处理后,把处理的结果数据返回给浏览器 8.浏览器拿到完整的html页面代码,在解析和渲染的时候里面的js,css,图片都同样是一个个http请求,都要经过上面的7个步骤 9.浏览器根据拿到的资源对页面进行渲染,最终呈现完整的页面给客户查看全部
-
nodejs.org查看全部
-
querystring.stringify(obj,sign1,sign2)//将对象转化成url中query部分的形式 参数:1.要转化的对象 2.链接符(默认&)3.键与值之间的符号(默认=) querystring.parse(string,sign1,sign2,sign3)//将query字符串转化成对象(反序列华) 参数:1.query字符串 2.链接符(默认&)3.键与值之间的符号(默认=)4.参数的个数(默认最多1000个,0就没有限制) querystring.escape(string) //文字转译 querystring.unescape(string) //反转译查看全部
-
URL网址解析 url: 统一资源定位符,字母,数字,文字需编码 uri: 统一资源标识符,字符串格式规范 url是uri的子集 url.parse(urlString, bool,bool)//解析URL地址 参数:1,URL解析成对象 2,将qurey变成json对象 3,正确解析不带协议(http)的url url.format(urlobj)//将url对象解析成字符串 url.resolve(from,to)//将两段字符串合并成一个完整的url地址 参数1.超链接 2.路径 protocol:协议 slashes:是否含有协议的“//” host:IP地址或者域名或者主机名 port:端口(默认8080不显示) hostname:主机名字 hash:锚点值 search:查询字符串参数 query:给http的数据,同上 pathname:访问的资源路径名 path:访问的资源路径 href:完整的url地址查看全部
-
状态码查看全部
-
nodeJs实际上是采用谷歌浏览器 V8引擎由c++语言编写的 本质上是一个javascript运行环境 node.js可以解析js代码,没有浏览器安全限制 提供系统级别的API:1文件读写 2.进程管理 3.网络通讯查看全部
-
模块的流程查看全部
-
在git进入官方仓库node,在仓库主页中按快捷键‘t’可以呼出搜索面板。 1.检索http.js 加下划线的就是私有模块,可以用exports可以暴露出去变成外部可以使用的接口。 -http-common模块和-http-outgoing-模块分别提供输入输出流对象查看全部
-
模块流程查看全部
-
在nodejs中文件和模块是一一对应的 模块类型: 1核心模块 2本地模块 3通过npm安装的第三方模块 引用模块的方式 1用文件路径引用 2用模块名来引用 如果用名称引用非核心模块的话 node就会把模块名映射到对应模块名的路径 包含了核心函数的模块会在node启动时预先加载 非核心模块就是使用npm安装的第三方模块 或者其他人创建的模块查看全部
-
JS中容易出现变量被覆盖,方法被替代的情况(既被污染)。特别是存在依赖关系时,容易出现错误。这是因为JS缺少模块管理机制,来隔离实现各种不同功能的JS判断,避免它们相互污染。 为此我们经常采用命名空间的方式,把变量和函数限制在某个特定的作用域内,人肉约定一套命名规范来限制代码,保证代码安全运行。jQuery中有许多变量和方法,但是无法直接访问,必须通过jQuery,$调用 各个方法。 Commonjs不同于jQuery,Commonjs是一套规范,约定了js如何组织,如何编写。大部分标准在拟定和讨论之中,首先把执行不同任务的代码块和代码文件看为独立的模块,每一个模块都是一个单独的作用域,但不是孤立的,可能存在依赖关系。每个模块分为三个部分,定义、标识和引用。这套规范与现实产品如node.js相互影响,良性循环。 nodejs基于commonjs实现了模块管理系统。node中每一个js文件都是一个独立的模块,在其内部不需要有命名空间,不需要担心变量的污染和方法定义时的隔离。同时模块之间可以组合形成更强大的模块或功能包。npm即是用来管理各种功能包的。查看全部
-
起一个web服务器 ndoejs可以自定义一个web服务器 服务器采用事件驱动模型 也就是用回调函数做异步加载 所以启动时遇到错误不会被阻塞 创建服务器 1.先引用一个http模块 创建服务器及处理http相关的任务 2.通过http里的createServer方法来创建服务后会返回一个对象 3.在通过服务器返回对象里的listen方法让服务器来设置它的端口监听请求 4.在createServer方法里创建一个回调函数 回调函数里有两个参数(1.请求 用来请求url之类的访问 2.响应 用来根据请求返回相对应的东西) 另外还会返回的一个请求头 返回的状态码是200,是文本类型的或者其他类型 表示请求成功 最后还会返回一个提示语 var http = require('http'); http.createServer(function(req,res){ res.writeHead(200,{'Content-type':'text/plain'}); res.end('Hello World\n'); }).listen(1337,'127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/'); 操作: 1.cmd 启动命令行 2.cd + 文件路径 3.node server.js //运行文件启动服务器 4.ctrl+c //停止服务器 (修改后需重启)查看全部
举报
0/150
提交
取消