前言想必我们在用Node.js用的最多的应该是创建http服务,所以对于每个Web开发工程师而言,Node.js的网络相关模块学习是必不可少。Node.js的网络模块架构在Node.js的模块里面,与网络相关的模块有Net、DNS、HTTP、TLS/SSL、HTTPS、UDP/Datagram,除此之外,还有v8底层相关的网络模块有tcp_wrap.cc、udp_wrap.cc、pipe_wrap.cc、stream_wrap.cc等等,在Javascript层以及C++层之间通过process.binding进行桥接相互通信。图片:1.pngNe...
node.js是基于单线程无阻塞异步式的I/O,异步式的I/O指的是当遇到I/O操作的时候,线程不阻塞而是进行下面的操作,那么I/O操作完成之后,线程时如何知道该操作完成的呢?当操作完成耗时的I/O操作之后,会以事件的形式通知I/O操作的线程完成,线程会在特定的时候来处理这个事件,进行下一步的操作,为了完成异步I/O,线程必须有事件循环的机制,不停的坚持是否有没有完成的事件,依次完成这些事件的处理。而对于阻塞式I/O,线程遇到耗...
每一个属性拥有零至多个如内部属性——*ReadOnly,DontEnum,DontDelete和Internal**。 你可以把它们想象为标签——一个属性可能拥有也可能没有某个特殊的内部属性。 在今天的讨论中,我们所感兴趣的是 DontDelete。当声明变量和函数时,它们成为了变量对象(Variable object)——要么是活化对象(在函数代码中), 要么是全局对象(在全局代码中)——的属性,这些属性伴随生成了内部属性 DontDelete。 然而,任何显式/隐式赋值的...
今天查资料时无意发现一个以前没有注意到过的属性:document.compatMode经过一番资料的查询后,了解到以下信息:我们都知道IE有两种盒子模型,在不声明 !DOCTYPE 时是混杂模式 (Quirks Mode),在声明了 !DOCTYPE 时与其他标准浏览器一致,是标准模式 (Standards Mode)document.compatMode 有两个属性值: BackCompat ----- 表示标准规范模式关闭,即当前为混杂模式 (Quirks Mode),此时浏览器客户区宽度为 document.body.clientWid...
下面小编就为大家带来一篇浅谈js的异步执行。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧1.Javascript语言的执行环境是”单线程”(single thread):优点:实现起来比较简单,执行环境相对单纯;缺点:只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段Javascript代码长时间运行(比如死循环),导致整个页面卡在这个地...
在JavaScript中this变量是一个令人难以摸清的关键字,this可谓是非常强大,在本文将为大家详细介绍下JavaScript中this的使用,感兴趣的朋友可以参考下JavaScript中this的使用 在JavaScript中this变量是一个令人难以摸清的关键字,this可谓是非常强大,充分了解this的相关知识有助于我们在编写面向对象的JavaScript程序时能够游刃有余。 对于this变量最要的是能够理清this所引用的对象到底是哪一个,也许很多资料上都有自己的解释,...
这篇文章主要介绍了JavaScript中的toLocaleDateString()方法使用简介,是JS入门学习中的基础知识,需要的朋友可以参考下 JavaScript Date.toLocaleDateString()方法的日期转换为字符串,使用操作系统的语言环境的约定返回“日期”部分。语法下面是参数的详细信息: NA返回值:返回使用操作系统的语言环境的约定的“日期”部分。例子:<html> <head> <title>JavaScript toLocaleDateString Method</title> </head> <body> <script t...
这篇文章主要介绍了JavaScript中的toDateString()方法使用详解,是JS入门学习中的基础知识,需要的朋友可以参考下 JavaScript Date.toDateString()方法返回一个Date对象的人类可读形式的日期部分。语法下面是参数的详细信息: NA返回值:返回Date对象的人类可读形式的日期部分。例子:<html> <head> <title>JavaScript toDateString Method</title> </head> <body> <script type="text/javascript">var dt = new Date(1993, 6, 28,...
这篇文章主要介绍了JavaScript中的继承方式详解,本文讲解了js继承的概念、原型式继承与类式继承、原型链继承、类式继承、组合继承、原型式继承等内容,需要的朋友可以参考下js继承的概念js里常用的如下两种继承方式:原型链继承(对象间的继承)类式继承(构造函数间的继承)由于js不像java那样是真正面向对象的语言,js是基于对象的,它没有类的概念。所以,要想实现继承,可以用js的原型prototype机制或者用apply和call方法去实现...
这篇文章主要介绍了JavaScript闭包,闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现函数作为返回值高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回。我们来实现一个对Array的求和。通常情况下,求和的函数是这样定义的:function sum(arr) {return arr.reduce(function (x, y) {return x + y;}); }sum([1, 2, 3, 4, 5]); // 15但是,如果不需要立刻求和,而是在后面的代码中...
1. 原型链继承Child.prototype = new Parent(); 1 function Parent (name, age) { 2 this.name = name; 3 this.age = age; 4 } 5 Parent.prototype.say = function(){ 6 console.log(hello, my name is + this.name); 7 }; 8 function Child() { 9 }10 Child.prototype = new Parent(pursue);11 var child1 = new Child();12 child1.say(); //hello, my name is pursue13 var child2 = new Child();14 console.log(ch...
一、for循环 四部曲: 1、设置初始值 var i = 0 2、设置循环执行条件 i < 5 3、执行循环体中的内容{ [循环体] } 包起来的部分 4、每一轮循环完成后都执行我们的i++累加操作for(var i = 0;i<5;i++){console.log(i) } break/continue:在循环体中遇到这两个关键字,循环体中的后面的代码就不在执行了 break:在循环体中,出现break,整个循环就直接的结束了,i++最后的这个累加的操作也不执行了 conti...
一、变量 js中的变量是一个抽象的概念,变量用来存储值和代表值的。 js中定义一个变量非常的简单:var 变量名 = 变量值 =是赋值操作,左边是变量名,右边是存储的值 js中的变量是松散类型的:通过一个var变量名就可以存储任何的数据类型 例如 var name = 李四二、数据类型 1、基本数据类型:由简单的结构组成 数字(number)、字符串(string)、布尔(boolean)、null、undefined 2、引用数据类型:结...
下面小编就为大家带来一篇JS中的forEach、$.each、map方法推荐。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧forEach是ECMA5中Array新方法中最基本的一个,就是遍历,循环。例如下面这个例子:[1, 2 ,3, 4].forEach(alert);等同于下面这个for循环var array = [1, 2, 3, 4];for (var k = 0, length = array.length; k < length; k++) { alert(array[k]);} Array在ES5新增的方法中,参数都是functi...
本篇文章主要介绍了node.js中express-session配置项详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧官方地址:阅读作用:用指定的参数创建一个session中间件,sesison数据不是保存在cookie中,仅仅sessionID保存到cookie中,session的数据仅仅保存在服务器端警告:默认的服务器端的session存储,MemoryStore不是为了生产环境创建的,大多数情况下会内存泄露,主要用于测试和开发环境接受的参数...