js

[js高手之路]Node.js+jade+express+mongodb+mongoose+promise实现todolist

筅森魡賤 提交于 2020-03-30 05:04:35
promise主要是用来解决异步回调问题,其实还有好几种比promise更好的方案,后面再说,这节,我们先用promise来改造下,我以前写的一篇文章 [js高手之路]javascript腾讯面试题学习封装一个简易的异步队列 中的一道面试题( 页面上有一个按钮,一个ul,点击按钮的时候,每隔1秒钟向ul的后面追加一个li, 一共追加10个,li的内容从0开始计数( 0, 1, 2, ....9 ) ). promise的小实例: 1 function next1(){ 2 return new Promise( function( resolve, reject ){ 3 console.log( 'next1' ); 4 resolve( 'jump to next2' ); 5 } ); 6 } 7 8 function next2(){ 9 return new Promise( function( resolve, reject ){ 10 console.log( 'next2' ); 11 resolve( 'jump to next3' ); 12 } ); 13 } 14 15 next1().then( function( res ){ 16 console.log( res ); 17 return next2(); 18 } ).then( function(

JS事件派发器EventEmitter

让人想犯罪 __ 提交于 2020-03-30 04:39:37
原文地址: http://zhangyiheng.com/blog/articles/js_event_mitter.html 需求 随着Browser客户端JS越来越复杂,MVC( Client端)设计模式成为一个很好的开发选择, 而MVC开发模式中,最基础的功能就是把Model和View关联起来, 当Model发生变化的时候,View呈现做出相应的调整。 实现此功能最合适的方式莫过于事件Event了, 对于Event大家应该都很熟悉,比如dom中的button,可以通过addEventListener/attachEvent添加click事件处理。 而一般的object对象是没有事件派发功能的,基于此需求,实现了一个EventEmitter。 具体实现 /** * Created by taozh on 2017/6/22. * taozh1982@gmail.com */ var EventEmitter = function () { this.__z_e_listeners = {}; }; EventEmitter.prototype.on = function (evt, handler, context) { var handlers = this.__z_e_listeners[evt]; if (handlers === undefined) {

Node js函数

删除回忆录丶 提交于 2020-03-30 04:22:56
/* 在JavaScript中,一个函数可以作为另一个函数的参数,函数名可做变量名。可以先定义一个函数,然后传递,也可以在传递参数的地方直接定义函数。 把函数做参数一般是主要用于回调函数,即被调用的方法执行完后调用作为参数的方法 Node.js中函数的使用与Javascript类似 例 */ //===============================以下代码为main.js文件中内容========================================== function say(word) { console.log(word); } function execute(someFunction, value) { someFunction(value); } execute(say, "Hello"); //===============================以上代码为main.js文件中内容========================================== /* 以上代码,把 say 函数作为execute函数的第一个变量进行了传递。这里传递的不是 say 的返回值,而是 say 本身 这样一来, say 就变成了execute 中的本地变量 someFunction ,execute可以通过调用 someFunction()

js 测试

依然范特西╮ 提交于 2020-03-30 03:56:45
今天js测试题目: 被基础题目虐暴。。。。。。惨不忍睹 1. var num = 2; switch(num){   case 1: console.log("1");   case 2: console.log("2");   default: console.log("default"); }输出结果为()// 2和default; 从2进入switch,因为没有break;所以2以后的都要执行。 2.js中的命名法: 1)匈牙利命名法 2)大驼峰 3)小驼峰 4)下划线命名法 (当时没有想起来!!) 3.在数组末端添加元素 push(); 在数组末端删除元素 pop(); 在数组第一个位置添加元素 unshift(); 在数组第一位置删除元素 shift(); 颠倒数组元素 reverse(); 4.生成对象的三种方法: 1) var obj = {}; 2) var obj = new Object(); 3) Var obj = Object.create(null); // 他是基于另一个对象而生成的对象,可以继承上一个对象的属性,也可以添加和改变。 var obj1 = { name : "zdh", age: 21 } var obj2 = Object.create(obj); console.log(obj2.age); //21

NodeJS学习笔记(二).js

一个人想着一个人 提交于 2020-03-30 03:23:39
1 Stream(数据流) 当内存中无法一次装下需要处理的数据时,或者一边读取一边处理更加高效时,我们就需要用到 数据流。NodeJS中通过各种 Stream 来提供对数据流的操作。 (1)为数据来源创建一个只读数据流: var rs = fs.createReadStream(src); // 从src读取文件, 返回一个新的可读流对象 rs.on('data', function (chunk) { // 触发'data'事件 rs.pause(); //暂停触发'data'事件 doSomething(chunk, function () { rs.resume(); //恢复触发'data'事件 }); }); rs.on('end', function () { cleanUp(); }); (2)为数据目标创建一个只写数据流: var rs = fs.createReadStream(src); var ws = fs.createWriteStream(dst); rs.on('data', function (chunk) { if (ws.write(chunk) === false) { rs.pause(); } }); rs.on('end', function () { ws.end(); }); ws.on('drain', function () {

NodeJS基础

≡放荡痞女 提交于 2020-03-30 03:19:45
什么是NodeJS JS是脚本语言,脚本语言都需要一个解析器才能运行。对于写在HTML页面里的JS,浏览器充当了解析器的角色。而对于需要独立运行的JS,NodeJS就是一个解析器。 每一种解析器都是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情。例如运行在浏览器中的JS的用途是操作DOM,浏览器就提供了 document 之类的内置对象。而运行在NodeJS中的JS的用途是操作磁盘文件或搭建HTTP服务器,NodeJS就相应提供了 fs 、 http 等内置对象。 用途 尽管存在一听说可以直接运行JS文件就觉得很酷的同学,但大多数同学在接触新东西时首先关心的是有啥用处,以及能带来啥价值。 NodeJS的作者说,他创造NodeJS的目的是为了实现高性能Web服务器,他首先看重的是事件机制和异步IO模型的优越性,而不是JS。但是他需要选择一种编程语言实现他的想法,这种编程语言不能自带IO功能,并且需要能良好支持事件机制。JS没有自带IO功能,天生就用于处理浏览器中的DOM事件,并且拥有一大群程序员,因此就成为了天然的选择。 如他所愿,NodeJS在服务端活跃起来,出现了大批基于NodeJS的Web服务。而另一方面,NodeJS让前端众如获神器,终于可以让自己的能力覆盖范围跳出浏览器窗口,更大批的前端工具如雨后春笋。 因此

NodeJS基础学习总结

一曲冷凌霜 提交于 2020-03-30 03:19:17
一、nodeJS解释   JS是脚本语言,脚本语言都需要一个解析器才能运行。对于写在HTML页面里的JS,浏览器充当了解析器的角色。而对于需要独立运行的JS,NodeJS就是一个解析器。    每一种解析器都是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情 。例如运行在浏览器中的JS的用途是操作DOM, 浏览器就提供了 document 之类的内置对象 。而运行在NodeJS中的JS的用途是操作磁盘文件或搭建HTTP服务器, NodeJS就相应提供了 fs 、 http 等内置对象 。   尽管存在一听说可以直接运行JS文件就觉得很酷的同学,但大多数同学在接触新东西时首先关心的是有啥用处,以及能带来啥价值。   NodeJS的作者说,他创造 NodeJS的目的是为了 实现高性能Web服务器 ,他 首先看重的是事件机制和异步IO模型的优越性 ,而不是JS。但是他需要选择一种编程语言实现他的想法,这种编程语言不能自带IO功能,并且需要能良好支持事件机制。JS没有自带IO功能,天生就用于处理浏览器中的DOM事件,并且拥有一大群程序员,因此就成为了天然的选择。   如他所愿,NodeJS在服务端活跃起来,出现了大批基于NodeJS的Web服务。而另一方面,NodeJS让前端众如获神器,终于可以让自己的能力覆盖范围跳出浏览器窗口

js时钟效果

拟墨画扇 提交于 2020-03-30 02:10:34
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ margin: 0; padding: 0; } .box{ width: 600px; height: 600px; margin: 0 auto; background: url(img/clock.jpg); position: relative; } #hour{ width: 100%; height: 600px; /*盒子大小必须的写*/ background: url(img/hour.png) no-repeat center center; position: absolute; } #min{ width: 100%; height: 100%; background: url(img/minute.png) no-repeat center center; position: absolute; } #second{ width: 100%; height: 100%; background: url(img/second.png) no-repeat center center; position: absolute; } </style> <script type=

前端js倒计时(精确到毫秒)

走远了吗. 提交于 2020-03-30 02:09:34
话不多说,直接上代码:   有需要直接拿走, <html> <head> <style> div{ width:100%; text-align:center; font-size: 14px; } </style> </head> <div id="go"> </div> <body> <script> function countTime(time,id) { var date = new Date(); var now = date.getTime(); var endDate = new Date(time);//设置截止时间 var end = endDate.getTime(); var leftTime = end - now; //时间差 var d, h, m, s, ms; if(leftTime >= 0) { d = Math.floor(leftTime / 1000 / 60 / 60 / 24); h = Math.floor(leftTime / 1000 / 60 / 60 % 24); m = Math.floor(leftTime / 1000 / 60 % 60); s = Math.floor(leftTime / 1000 % 60); ms = Math.floor(leftTime % 1000); if(ms < 100) { ms

js 定时器

不问归期 提交于 2020-03-30 00:35:30
var i=0; var int=self.setInterval(function(){ console.log(i++); change_img(); },20); clearInterval(int); //停止定时器 javascript中防止重复点击、防止点击过快实用方法 转自i https://blog.csdn.net/jiangwei1994/article/details/80774214 var isclick = true; function post_test() { if (isclick) { isclick = false; //--- var posturl = "/Home/P_Getcode"; var formData = new FormData(); myxhr.mypost(posturl, 'json', formData, callback_1); //--- setTimeout(function () { isclick = true; }, 500); } } 来源: https://www.cnblogs.com/enych/p/11477329.html