benchmark意为基准测试,常用来比较程序的性能。例如,比较不同方式拼接字符串的效率:
js
var a = 'hello' + 'world'
var b = ['hello', 'world'].join('')
常用方法有:
运行相同的次数,用时少的效率高
运行相同的时间,运行次数多的效率高
1. 运行相同的次数
例如:
```js
function f1() {
return 'hello' + 'world'
}
function f2() {
return ['hello', 'world'].join('')
}
function benchmark(name, fn) {
var ti
继续阅读 »
我们继续以之前讲解的hello插件为基础,现在为其增加参数配置选项,并且指定一个独立的脚本文件中进行开发,这样我们就可以写一些更复杂的插件
```lua
-- 定义一个名叫hello的插件任务
task("hello")
-- 设置类型为插件
set_category("plugin")
-- 插件运行的入口,这里指定main,说明从当前插件目录的main.lua脚本中加载插件入口
on_run("main")
-- 设置插件的命令行选项,这里没有任何参数选项,仅仅显示插件描述
set_menu({
-- usage
继续阅读 »
打印出 hello world 只是我们学习Python的第一步,但是仅仅打印出 hello world 肯定不能满足我们的需求,你可能会希望做得更多,比如写一个小脚本帮你抢火车票,接下来我们会介绍一些基本概念。
more
继续阅读 »
一、Hello World
使用镜像的代码为:
```js
const http = require('http')
const os = require('os')
const hostname = os.hostname()
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' })
res.end(Hello world from ${hostname})
})
继续阅读 »
在涉及到有回调函数的情况下,回调函数可能是同步执行的,也可能是异步执行的。
例如:
```js
function callback() {
console.log('callback')
}
function syncFn(fn) {
fn()
}
function asyncFn(fn) {
setImmediate(fn)
}
```
当执行:
js
syncFn(callback)
console.log('hello world')
输出为:
js
// => callback
// => hello world
当执行:
js
asyncFn(callback)
console.log(
继续阅读 »
简介
D3.js(后面简称D3,官方首页https://d3js.org/)是基于JavaScript开发的一套用于数据可视化工具,项目开源在GitHub,项目排名靠前。它提供了很多API,如DOM(Document Object Model)的一些操作,绘制图形等。截止本文发表时间,D3已更新到v4,v4在v3的基础上,有了很大的改变(因为v3只支持通过svg和dom构图,所以v4在v3的基础上增加了对Canvas的支持以及API的修改),本文使用的版本为v3的API。
Hello World
html
D3.js Hello World
继续阅读 »
源码
更新内容
此版本重构了90%的代码
新特性
增加task任务机制,可运行自定义任务脚本
实现plugin扩展机制,可以很方便扩展实现自定义插件,目前已实现的一些内置插件
增加project文件导出插件(目前已支持makefile的生成,后续会支持:vs, xcode等工程的生成)
增加hello xmake插件(插件demo)
增加doxygen文档生成插件
增加自定义宏脚本插件(支持动态宏记录、宏回放、匿名宏、批量导入、导出等功能)
增加更多的类库用于插件化开发
实现异常捕获机制,简化上层调用逻辑
增加多个option进行宏绑定,实现配置一个参数,就可以同时对多个配置进行生效
增加显示全局构建进度
继续阅读 »
此博客将记录了我学习RN过程中很有价值的内容,源码可以参考ReactNativeLeaning(ES6版),源码最后附了一个sinaWebBo项目,看着还不错^_^。顺便支持一下react-native-image-browser吧。
1、Hello World!
react-native init AwesomeProject 卡住不动:解决React Native初始化项目速度很慢的问题;
2、选个好用的编辑器
atom+nuclide的详细使用方法
这个编辑器很好用,有察看dom结构和debugger功能,不过如果你喜欢别的编辑器也可以用;
3、学习的两个重点,布局和语言
如果布局不会请参考阮一峰的Flex 布局教
继续阅读 »
今天讨论的新特性让我非常兴奋,因为这个特性是 ES6 中最神奇的特性。
这里的“神奇”意味着什么呢?对于初学者来说,该特性与以往的 JS 完全不同,甚至有些晦涩难懂。从某种意义上说,它完全改变了这门语言的通常行为,这不是“神奇”是什么呢。
不仅如此,该特性还可以简化程序代码,将复杂的“回调堆栈”改成直线执行的形式。
我是不是铺垫的太多了?下面开始深入介绍,你自己去判断吧。
more
简介
什么是 Generator?
看下面代码:
javascript
function* quips(name) {
yield "hello " + name + "!";
yield "i hope you are enjoy
继续阅读 »