var方法

nodejs stream 手册学习

不想你离开。 提交于 2019-12-05 15:57:02
nodejs stream 手册 https://github.com/jabez128/stream-handbook 在node中,流可以帮助我们将事情的重点分为几份,因为使用流可以帮助我们将实现接口的部分分割成一些连续的接口,这些接口都是可重用的。接着,你可以将一个流的输出口接到另一个流的输入口,然后使用使用一些库来对流实现高级别的控制。(metamask中就是这样,使用了很多流,希望这几天的学习能够让我真正搞懂metamask几个部分之间到底是怎么相互工作的) 为什么应该使用流 在node中,I/O都是异步的,所以在和硬盘以及网络的交互过程中会涉及到传递回调函数的过程。你之前可能会写出这样的代码: var http = require( ' http ' ); // node自带 var fs = require( ' fs ' ); var server = http.createServer(function (req, res) { fs.readFile(__dirname + ' /data.txt ' , function (err, data) { res.end(data); // 浏览器上显示 console.log(data); // 终端上显示 }); }); server.listen( 8000 ); 上面的这段代码并没有什么问题,但是在每次请求时

Nodejs数据流(Stream)手册

て烟熏妆下的殇ゞ 提交于 2019-12-05 15:49:06
在书上看到的补充阅读,为了以后方便以后复习干脆翻译了下来。翻译自 Node数据流手册 1、介绍 本文介绍了使用 node.js streams 开发程序的基本方法。 "We should have some ways of connecting programs like garden hose--screw in another segment when it becomes necessary to massage data in another way. This is the way of IO also." Doug McIlroy. October 11, 1964 最早接触Stream是从早期的unix开始的数十年的实践证明Stream 思想可以很简单的开发出一些庞大的系统。在unix里,Stream是通过 |实现的;在node中,作为内置的stream模块,很多核心模块和三方模块都使用到。和unix一样,node Stream主要的操作也是 .pipe() ,使用者可以使用反压力机制来控制读和写的平衡。 Stream 可以为开发者提供可以重复使用统一的接口,通过抽象的Stream接口来控制Stream之间的读写平衡。 2、为什么使用Stream node中的I/O是异步的,因此对磁盘和网络的读写需要通过回调函数来读取数据,下面是一个文件下载服务器的简单代码: var

nodejs学习笔记

感情迁移 提交于 2019-12-05 15:22:12
一、fs模块 文件系统模块 1.Node.js 文件系统 提供一组类似 UNIX(POSIX)标准的文件操作API。 Node 导入文件系统模块(fs) 2.引入文件模块 var fs = require("fs"); 3.异步读取txt文本使用 fs.readFile('文本url',function(err,date){ if(err){ console.log(err.stack); }else{ console.log(date.toString()); } }); 4.同步读取 var data = fs.readFileSync('input.txt'); console.log("同步读取: " + data.toString()); 5.异步同步同时存在遵循同步有先 6.fs.open(path,flags,mode,callback);在异步模式下打开文件 path--文件路径 flags--以何种方式打开r r+ rs rs+ w w+ wx wx+ a ax a+ ax+ 7.fs.stat(path, callback)通过异步模式获取文件信息 fs.stat('hello.js', function (err, stats) { console.log(stats.isFile()); //true }) 8.stats 是 fs.Stats 对象

【cocos2d-js官方文档】五、Cocos2d-JS v3.0的新Action API

前提是你 提交于 2019-12-05 14:59:42
新增action中的方法 以前,当我们需要重复一个action的时候,我们需要: sprite.runAction(cc.Repeat.create(action, 2)); 上面代码中创建了一个新的Repeat对象重新包装action,这样不管在语义上还是代码上都比较难理解。 为什么我们不能像jQuery一样的简单方便的使用原action呢? 于是我们在新版本中为action增加了新的方法: sprite.runAction(action.repeat(2)); 要循环action只需要在action后面增加.repeat(),而不需要和以前一样重新生成一个action,是不是更加方便了? ^.^ 另外,我们还针对action的相关类,增加了更加简单的创建方法,通过类名第一个字母改为小写就能创建出一个新的对象: var action = cc.moveBy(2,cc.p(10,10)); 上面代码等同于: var action = cc.MoveBy.create(2, cc.p(10, 10)) 看到这里,大家一定很担心一件事儿~兼容性。。。 其实,大家不必太过于担心,旧的方法依旧是被支持滴。 为什么要新增API 刚刚提到了怎么调用新的方法,但是为什么我们在现有一套比较成熟的方案下还是在新版本中加入了新的方法呢? 其实这一切都是为了更简单,更符合大家的使用习惯

NodeJS使用Express框架设置路由

穿精又带淫゛_ 提交于 2019-12-05 14:56:09
安装Express框架 npm install -g express 使用Express中的send方法发送数据 var express = require('express'); var http = require('http'); //实例化一个对象 var app = express(); app.get('/index.html',function(req,res){ res.writeHead(200,{'Content-Type' : 'text/html'}); res.write('<head><meta charset="utf-8" /></head>'); res.end('你好\n'); //直接使用send方法,会自动计算响应头信息,且不需要使用end方法来显式结束响应内容的发送,该方法已经被封装在send方法内部 // res.send('你好'); }) app.listen(1337,'127.0.0.1',function(){ console.log('服务器正在监听'); }) 使用Express设置路由 //设置路由 var express = require('express'); var http = require('http'); var app = express(); app.get('/index.html/:id/:name

《深入浅出NodeJS》读书笔记

爷,独闯天下 提交于 2019-12-05 14:33:48
 NodeJS NodeJS 4 个特点: 异步 I/O, 事件驱动与回调, 单线程事件轮询, 跨平台。 NodeJS 5 个大坑:异常处理,嵌套太深,没有 Sleep ,多线程编程,异步转同步。 NodeJS 4 种提升性能的方法: 动静分离, 缓存( Redis ) , 多进程, 数据库读写分离。 NodeJS 简介 模块机制 异步 I/O 异步编程 内存控制 Buffer 网络编程 构建 Web 多进程 测试 产品化 调试 NodeJS 编程规范 NodeJS 简介 高性能,符合时间驱动,没有历史包袱这三个主要原因, JavaScript 成为了 Node 的实现语言。 NodeJS 基于 Google V8 引擎。 Node 优秀的运算能力主要来自 V8 的深度优化。 NodeJS 特点:异步 I/O, 事件驱动与回调函数, 单线程事件轮询,跨平台 NodeJS 单线程的缺点: 无法利用多核 CPU. 错误会引起整个应用进程退出。 大量计算占用 CPU 导致无法继续调用异步 I/O. 解决单线程缺点的方法是引入子进程方法( Cluster, 见后边)和 C/C++ 模块扩展(利用它们的多线程机制)。 模块机制 Node 出现之前,服务器端的 JS 基本没有市场的。 CommonJS 主要是为了弥补当前 JS 没有标准的缺陷,希望 JS 能够在任何地方运行。 模块引用

2019年11月第四周前端问题汇总

泄露秘密 提交于 2019-12-05 14:22:33
2019-11-18 IE/edge自动给数字加下划线 iview 中配置meta? input[type='file']选择文件时,前后文件名称一致时,默认文件未修改. 文件选择时,使用新的input替换旧的input 2019-11-19 js实现回到顶部--小火箭样式 点击调用window.scroll()事件,火箭位置从下至上,网页位置scrollTop():0 $('html,body').animate({ scrollTop: '0px' }, 800); 2019-11-20 获取当前浏览器信息 function myBroswer() { var userAgent = navigator.userAgent; var isOpera = userAgent.indexOf("Opera") > -1; var isIE = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1 && !isOpera; var isEdge = userAgent.indexOf("Edge") > -1; var isFireFox = userAgent.indexOf("FireFox") > -1; var isSafari = userAgent.indexOf("Safari")

20个常用的JavaScript字符串方法

一个人想着一个人 提交于 2019-12-05 12:51:57
摘要: 玩转JS字符串。 原文: JS 前20个常用字符串方法及使用方式 译者:前端小智 Fundebug 经授权转载,版权归原作者所有。 本文主要介绍一些最常用的 JS 字符串函数。 1. charAt(x) charAt(x) 返回字符串中 x 位置的字符,下标从 0 开始。 //charAt(x) var myString = 'jQuery FTW!!!'; console.log(myString.charAt(7)); //output: F 2. charCodeAt(x) `charCodeAt(x)`返回字符串中`x`位置处字符的`unicode`值。 //charAt(position) var message="jquery4u" //alert "113" alert(message.charAt(1) 3. concat(v1,v2..) concat() 方法用于连接两个或多个字符串,此方法不改变现有的字符串,返回拼接后的新的字符串。 //concat(v1, v2,..) var message="Sam" var final=message.concat(" is a"," hopeless romantic.") //alerts "Sam is a hopeless romantic." alert(final) 4. fromCharcode

一篇文章看懂JS闭包,都要2020年了,你怎么能还不懂闭包?

北战南征 提交于 2019-12-05 10:03:59
壹 ❀ 引 我觉得每一位JavaScript工作者都无法避免与闭包打交道,就算在实际开发中不使用但面试中被问及也是常态了。就我而言对于闭包的理解仅止步于一些概念,看到相关代码我知道这是个闭包,但闭包能解决哪些问题场景我了解的并不多,这也是我想整理一篇闭包的原因。我们来看一段代码,很明显这是一个闭包,那么请问闭包指代的是下方代码中的哪一部分呢?本文开始。 function outer() { let name = '听风是风'; function insider() { console.log(`欢迎来到${name}的博客`); }; return insider; }; outer()(); //欢迎来到听风是风的博客 贰 ❀ 什么是闭包? 如果在面试中被问及什么是闭包,大部分情况下得到的答复是(至少我以前是) A函数嵌套B函数,B函数使用了A函数的内部变量,且A函数返回B函数,这就是闭包 。 这段描述当然没问题,那么为了让下次面试回答的更为漂亮,就让我们从更专业的角度重新认识闭包。 1.闭包起源 闭包翻译自英文单词 closure ([ˈkloʊʒər] 倒闭,关闭,停业) ,闭包的概念最早出现在1964 年的学术期刊 《The Computer Journal》 上,由 P. J. Landin 在 《 The mechanical evaluation of

十一、微信小程序-var、let、const用法详解

两盒软妹~` 提交于 2019-12-05 09:10:21
let命令 基本用法 ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1 上面代码在代码块之中,分别用let和var声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值。这表明,let声明的变量只在它所在的代码块有效。 for循环的计数器,就很合适使用let命令。 for (let i = 0; i < 10; i++) { // ... } console.log(i); // ReferenceError: i is not defined 上面代码中,计数器i只在for循环体内有效,在循环体外引用就会报错。 下面的代码如果使用var,最后输出的是10。 var a = []; for (var i = 0; i < 10; i++) { a[i] = function () { console.log(i); }; } a[6](); // 10 上面代码中,变量i是var命令声明的,在全局范围内都有效,所以全局只有一个变量i。每一次循环,变量i的值都会发生改变,而循环内被赋给数组a的函数内部的console.log