OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

JavaScript数组从头开始的位置插入新元素或删除第一个元素

JS学习 by ourjs key JavaScript 1515835272985 评论 (2)
很多与数组有关的任务听起来很简单,但实际情况并不总是如此,而开发人员在很多时候也用不到他。最近我碰到了这样一个需求: 
关于数的操作用得最多还是push/pop等。但有时我们也需要将一个元素插入到现有数组的特定索引处。使用 splice 即可

var arr = [1,2,3]
arr.splice(0,0,'number')
console.log(arr)

Node.JS中UDP打洞穿透内网路由,架设内网服务器技术详解及源码

JS学习 by ourjs key JavaScript 1514950344684 评论 (1)
实现基于TCP协议的p2p“打洞”过程中,最主要的问题不是来自于TCP协议,而是来自于来自于应用 程序的API接口。这是由于标准的伯克利(Berkeley)套接字的API是围绕着构建客户端/服务器程序 而设计的,API允许TCP流套接字通过调用connect()函数来建立向外的连接,或者通过listen()和 accept函数接受来自外部的连接,但是,API不提供类似UDP那样的,同一个端口既可以向外连接, 又能够接受来自外部的连接。而且更糟的是,TCP的套接字通常仅允许建立1对1的响应,即应用程 序在将一个套接字绑定到本地的一个端口以后,任何试图将第二个套接字绑定到该端口的操作都会 失败。

移动端开发框架哪个好?jQuery/Vue/AngularJS有哪些区别和优缺点?

JS学习 by ourjs key 分享 1513346035947 评论 (2)

JS框架,我认为大体上可以分为两种。一种是类似jQuery/ d3那样的,通过修改html的DOM结构来渲染UI的库。

还有一种则是类似于AngularJS/ReactJS 那样的,采用MVC分层的,通过Model来渲染View UI框架。

注意这里的区别,jQuery类似于库,而Angular类似于框架,这也意味着使用Angular要严格按照框架规定来写。但Vue虽然也是MVC渲染,但更像一个库,所以明显要比Angular上手要容易。

Node.JS 8.x和9.x新特性:N-API,NPM5,ERROR CODE

JS学习 by ourjs key Node.JS 1511691422715 评论 (1)
Node.JS 8主要升级了安全性和稳定性,并将维护1年半的时间。

采用 Google v8 6.1 JavaScript 引擎
The NPM 5.0.0
在典型Web应用中,性能比6.x提升20%的性能
Performance Timing API:检测应用性能

Node.JS读取中文TXT编码文件显示乱码问题解决方案

JS学习 by ourjs key Node.JS 1511618407429 评论 (0)
Windows下默认的编码格式是ASNI,其实这并不是真正的编码格式,但Node.JS默认的编码、解码则是目前通用的UTF-8。因此在读取Windows默认的TXT文件时会显示乱。
可以用iconv-lite来用gbk解码:
var fs    = require('fs')
var iconv = require('iconv-lite')

fs.readFile('readme.txt', function(err, data) {
  console.log(iconv.decode(data, 'gbk'))
})

Node.JS与USB接口通信:检测U盘/移动硬盘插拔事件和发送接数据

JS学习 by ourjs key 开源 1511014509183 评论 (1)
在做嵌入式开发时,我们经常需要能够侦听USB端口的热插拔事件。目前node.js本身是不提供这类系统事件的接口的。不过已经有人用node.js和c/c++来侦听USB的系统事件,并将其打包进了NPM。
使用

var usb = require('usb')

usb.on('attach', function(device) { 
});
usb.on('detach', function(device) { 
});

NodeJS动态传参特性:不定个数参数的省略,默认值与解构

JS学习 by ourjs key Node.JS 1509953520193 评论 (0)
在Javascript中普遍模式是将一个对象作为配置可选项,以前,这些选项得手工从对象中分解出来然后分配给相应变量。

function doTask (who, options) {
	options = options || ''

	var name = options.name
	var time = options.time
}
现在只需要一行即可:

function doTask (who, options = {}) {
	var { name, time } = options
}

从 Node 到 Go:一个粗略的比较—GO平均性能比JavaScript快十几倍

JS学习 by ourjs key 分享 1507098801274 评论 (4)

虽然我在大学时期和刚刚工作的一些时间在使用更严谨的编译语言,比如 C++ 和 C#,而后来我开始使用 JavaScript。我很喜欢它的自由和灵活,但是我最近开始怀念静态和结构化的语言,因为当时有一个同事让我对 Go 语言产生了兴趣。

我从写 JavaScript 到写 Go,我发现两种语言有很多相似之处。两者学习起来都很快并且易于上手,都具有充满表现力的语法,并且在开发者社区中都有很多工作机会。没有完美的编程语言,所以你应该总是选择一个适合手头项目的语言。在这篇文章中,我将要说明这两种语言深层次上的关键区别,希望能鼓励没有用过 Go 语言的用户有机会使用 Go 。

Node.JS中如何快速扫描端口并发现局域网内的Web服务器地址(80)

JS学习 by ourjs key Node.JS 1505210771582 评论 (0)
在 Node.JS 中进行端口扫描还是比较方便的,一般会有广播和轮询两种方式。即使用广播和扫描,使用广播发出的消息有时会被路由器屏蔽,所以并不可靠。
使用node.js中的net模块,可以直接尝试向目录主机的某个端口进行连接,如果能建立连接,则说明该地址存在服务器。

var socket = new Socket()
socket.connect(port, host)
socket.on('connect', function() {
  //找到port 和 host 地址
})

Node.JS循环递归复制文件夹目录及其子文件夹下的所有文件

JS学习 by ourjs key Node.JS 1504004376526 评论 (0)
在Node.js中,要实现目录文件夹的循环递归复制也非常简单,使用fs模块即可,仅需几行,而且性能也不错,我们先来实现文件的复制:

var copyFile = function(srcPath, tarPath, cb) {
  var rs = fs.createReadStream(srcPath)
  rs.on('error', function(err) {
    if (err) {
      console.log('read error', srcPath)
    }
    cb && cb(err)
  })

  var ws = fs.createWriteStream(tarPath)
  ws.on('error', function(err) {
    if (err) {
      console.log('write error', tarPath)
    }
    cb && cb(err)
  })
  ws.on('close', function(ex) {
    cb && cb(ex)
  })

  rs.pipe(ws)
}

广告投放

 近期热门 - 点击最多
  1. 如何通过网页、客户端、手机APP、路由器查找OnceAir NAS网盘的内网访问地址
  2. JavaScript用new Image实现内网服务器端口扫描
  3. 如何收集捕获Node中的未处理的错误异常信息?
  4. Node.JS循环删除非空文件夹及子目录下的所有文件
  5. 用css禁用input、checkbox、select等html控件,实现disable效果
  6. 怎样使用OnceAir搭建局域网内的文件共享服务器
  7. 【示例教程】如何用LEADTOOLS 实现一个简单的STORE SCU存储客户端
  8. 用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建以太坊电商平台DApp实战教程
  9. AirJD-简单好用的免费建站工具

  全端社区 - 最新回复
  1. MFC功能扩展控件BCGSuite for MFC发布v27.1|附下载
  2. 一位自由职业者的分享:程序员怎样找兼职?
  3. DevExpress v17.2新版亮点——CodeRush篇(二)
  4. 怎样用纯HTML和CSS更改默认的上传文件按钮样式
  5. Python不可维护?终于把一个8万行的Python程序用Java重写了
  6. MFC界面套包BCG Pro Edition for MFC发布v27.1|附下载
  7. 从 Node 到 Go:一个粗略的比较—GO平均性能比JavaScript快十几倍
  8. 为什么使用"use strict"可以节约你的时间
  9. DevExpress v17.2新版亮点——CodeRush篇(一)
  10. JavaScript中的继承,构造函数以及new关键字的作用

  开源的 OurJS
Demo (EN), Demo (CN), Github
  关注我们 RSS

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号

加载中...