- 求值:
var n1 = 10;
var n2 = 5;
var r = n1+++n2;
console.log(n1, n2, r); // => 11, 5, 15
- 求值:
var parseHtmlTarg = (function(){ | |
//解析页面html字符串 | |
var _RegExp = /<(\/)*([a-zA-Z]+)([^>\w]+[^>]*)*>/ig; | |
var _attrRegExp = /[^>\w]+([a-zA-Z]+)=[\"\']?([^\"\']*)[\"\']?/ig; | |
var cssRegExp = /(expression)+/ig | |
var URL_EXP = new RegExp("((news|telnet|nttp|file|http|ftp|https)://)(([-A-Za-z0-9]+(\\.[-A-Za-z0-9]+)*(\\.[-A-Za-z]{2,5}))|([0-9]{1,3}(\\.[0-9]{1,3}){3}))(:[0-9]*)?(/[-A-Za-z0-9_\\$\\.\\+\\!\\*\\(\\),;:@&=\\?/~\\#\\%]*)*", "g"); | |
//var IMG_EXP = /([^'"]+)[^>]*/ig | |
var filtterTags = { | |
'script' : true, | |
'iframe' : true, |
// `this` in javascript functions points to the object called it!! | |
function f() { | |
undefined !== this.x ? this.x ++ : (this.x = 1); | |
} | |
var o = { | |
f: f | |
}; |
var http = require('http'); | |
var fs = require('fs'); | |
var cp = require('child_process'); | |
var getSocketPath = function(cpu) { | |
return __dirname + '/' + cpu + '.sock'; | |
}; | |
var cpu = 0; | |
// node process was bound to the first cpu in this demo. | |
var socketPath = getSocketPath(cpu); |
/** | |
example: | |
function async(n, callback) { | |
setTimeout(function() { | |
callback(n); | |
}, n); | |
} | |
queue([100, 200], async, function(err, r) {console.log(r);}); // => [100, 200] | |
**/ |
var dispatcher = function() { | |
var pools = {}; | |
// { | |
// 'foo': [fn1, fn2], | |
// 'bar': [fn3, fn4] | |
// } | |
return { | |
on: function(action, handle) { | |
var actions = pools[action] || (pools[action] = []); |
var s = '$0abc\\$1 $2 $3[$2]gr $4[x][1]'; // => $0, $2, $3[$2], $4[x][1] | |
s.replace(/((?!\\)\$\d+(\[[^\[\]]+\])*)/g, function(m, $1, $2, index) { | |
console.log(m, $1, $2, index); | |
}); |
// see => http://jsperf.com/postmessage | |
var echoSetTimeout = (function() { | |
return function(msg, cb) { | |
setTimeout(cb, 0); | |
} | |
})(); | |
var echoWorker = (function() { | |
var code = 'onmessage = function(e) { postMessage(e.data) };'; | |
var blobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder; |
//比如在下列A、B、C、D三处转义方式均有细节差异。 | |
//<a href="http://www.qq.com" title="<?=$A?>"><?=$B?></a> | |
//<script>var name="<?=$C?>"</script> | |
//<textarea> | |
//<?=$D?> | |
//</textarea> | |
//进行pre的只能是D,而且还要做其他转义,比如 < 转为 < |
var n1 = 10;
var n2 = 5;
var r = n1+++n2;
console.log(n1, n2, r); // => 11, 5, 15
var Promise = function () { | |
this.thens = []; | |
}; | |
Promise.prototype = { | |
resolve: function () { | |
var t = this.thens.shift(), n; | |
t && (n = t.apply(null, arguments), n instanceof Promise && (n.thens = this.thens)); | |
}, | |
then: function (n) { |