http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651550987&idx=1&sn=f7a84b59de14d0b99d5e12a265d55fd2&scene=0#wechat_redirect

http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=2651550991&idx=1&sn=ed60b424de47cceb2b81e7df40b57efa&scene=0#wechat_redirect

http://javascript-puzzlers.herokuapp.com/

/*
44 javascript puzzlers
http://javascript-puzzlers.herokuapp.com/ // 001
var res = ['1','2','3'].map(parseInt);
console.log(res);// 输出结果为:[1,NaN,NaN]
// 输出结果为:[parseInt('1',0),parseInt('2',1),parseInt('3',2)] function foo1(){ // 查看传入的参数都是啥;
var l = arguments.length;
console.log('arguments begin:');
for(var i=0;i<l;i++){
console.log(arguments[i]);
}
console.log('arguments end;');
}
var res2 = ['1','2','3'].map(foo1); // map方法会给原数组中的每一个元素都按顺序调用一次callback函数;
// callback函数会被传入3个参数:数组元素,元素索引,原数组本身; var a = 'global a';
function foo2(){
console.log(this.a);
} foo2(); // 直接调用会输出 'global a' var obj = {};
obj.a = 'object a'; var res = [1,2,3].map(foo2,obj); // 会输出三个'object a'
// map方法传入一个回调函数,并且传入一个回调函数中的this对象;
console.log(res); // [undefined, undefined, undefined] // 002
var res = [typeof null, null instanceof Object];
console.log(res); // ['object',false]
// js共有6种数据类型 Undefined,String,Number,Boolean,Object,Null
// 每种对应的typeof为'undefined','string','number','boolean','object','object'
// Function 不是数据类型,但是typeof Function 返回 'function' // JavaScript instanceof运算符代码
// http://www.ibm.com/developerworks/cn/web/1306_jiangjj_jsinstanceof/
function instance_of(L,R){ // L表示左表达式,R表示右表达式
var O = R.prototype; // 取R的显示原型
L = L.__proto__; // 取L的隐式原型
while(true){
if(L === null){
return false;
}
if(O === L){ // 这里重点:当O严格等于L时,返回true
return true;
}
L = L.__proto__;
}
} function Aoo(){}
function Foo(){}
Foo.prototype = new Aoo(); // JavaScript原型继承
var foo = new Foo();
console.log(foo instanceof Foo); // true
console.log(foo instanceof Aoo); // true
console.log(Object instanceof Object); //true
console.log(Function instanceof Function); //true
console.log(Number instanceof Number); // false
console.log(String instanceof String); // false
console.log(Function instanceof Object); // true
console.log(Foo instanceof Function); // true
console.log(Foo instanceof Foo); // false // 003
//var res = [[3,2,1].reduce(Math.pow),[].reduce(Math.pow)]; // 这一行就会直接报 TypeError,不能对空数组调用reduce方法;
//console.log(res); //var res = [3,2,1].reduce(Math.pow);
//console.log(res); // 输出9 , Math.pow(3,2),Math.pow(9,1) function foo1(){
var l = arguments.length;
console.log('arguments begin:');
for(var i=0;i<l;i++){
console.log(arguments[i]);
}
console.log('arguments end:');
}
//var res = ['a','b','c'].reduce(foo1);
// reduce中的回调函数会获得四个参数: 初始值(或者上一次回调函数的返回值,没有返回值就是undefined),当前值,当前值索引,原数组
// 如果没有初始值,就会把数组第一个值作为初始值;
//var res = ['a','b','c'].reduce(foo1,'A'); //var obj = {};
//var res = [1,2,3].reduce(obj); // 如果回调函数不是函数,也会直接抛出TypeError异常 // 004 var val = 'smtg';
console.log('Value is ' + (val==='smtg')?'Something':'Nothing');
// + 优先级 大于 ? , 等价于 'Value is true'?'Something':'Nothing' // 005 var name='World';
(function(){
if(typeof name === 'undefined'){
var name = 'Jack';
console.log('Goodbye '+name);
}else{
console.log('Hello '+name);
}
})(); (function(){
var a;
if(typeof a === 'undefined'){
var name = 'Jack';
console.log('Goodbye '+name);
}else{
console.log('Hello '+name);
}
})(); (function(){
var a='';
if(typeof a === 'undefined'){
var name = 'Jack';
console.log('Goodbye '+name);
}else{
console.log('Hello '+name); // 这个变量的确被提升了;Hoisting
}
})(); (function(){
var a='';
if(typeof a === 'undefined'){
var name = 'Jack';
console.log('Goodbye '+name);
}else{
console.log('Hello '+name1); // 这个就会报异常,name1 is not defined
}
})(); // 006 var END = Math.pow(2,53); // 9007199254740992
var START = END - 100;
var count = 0; //for(var i= START;i<=END;i++){ // 这个就是死循环了;
// count++;
//}
//console.log(count); var end1 = END+1; // end1与END是一样的;
console.log(END);
console.log(end1); var end2 = Math.pow(2,100); // 已经是指数表示方式了;1.2676506002282294e+30
var end21 = end2+1;
console.log(end2);
console.log(end21);
// 在console中可以表示的最大值是Math.pow(2,1023),8.98846567431158e+307
// Math.pow(2,1024)终于显示Infinity
// Number.MAX_VALUE = 1.7976931348623157e+308 // 007 var ary = [0,1,2];
ary[10] = 10;
var res = ary.filter(function(x){return x===undefined;});
console.log(res);
console.log(ary); // 官方Array.filter()的polyfill:
if (!Array.prototype.filter) {
Array.prototype.filter = function(fun/*, thisArg*[DEL THIS]/) {
'use strict'; if (this === void 0 || this === null) {
throw new TypeError();
} var t = Object(this);
var len = t.length >>> 0;
if (typeof fun !== 'function') {
throw new TypeError();
} var res = [];
var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
for (var i = 0; i < len; i++) {
if (i in t) { // 首先判断是否在数组内;
var val = t[i]; // NOTE: Technically this should Object.defineProperty at
// the next index, as push can be affected by
// properties on Object.prototype and Array.prototype.
// But that method's new, and collisions should be
// rare, so use the more-compatible alternative.
if (fun.call(thisArg, val, i, t)) {
res.push(val);
}
}
} return res;
};
} // 008
var one = 0.1;
var two = 0.2;
var six = 0.6;
var eight = 0.8; var res = [two-one==one, eight-six==two];
console.log(res); // [true,false] var arr = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9];
for(var i=0;i<9;i++){
for(var j=0;j<i;j++){
(arr[i]+arr[j]+'').length>4? console.log(arr[i]+'+'+arr[j]+'='+(arr[i]+arr[j])):0;
(arr[i]-arr[j]+'').length>4? console.log(arr[i]+'-'+arr[j]+'='+(arr[i]-arr[j])):0;
}
} // JavaScript中计算精度丢失的问题 IEEE754 http://rockyee.iteye.com/blog/891538
// 0.00011001100110011001100110011001100110011001100110011001
//+ 0.00110011001100110011001100110011001100110011001100110011
// = 0.01001100110011001100110011001100110011001100110011001100
// 转换成10进制之后得到:0.30000000000000004 // 009 function showCase(value){
switch(value){
case 'A':
console.log('Case A');
break;
case 'B':
console.log('Case B');
break;
case undefined:
console.log('undefined');
break;
default:
console.log('Do not know'); } } showCase(new String('A'));
showCase('B');
// switch是严格比较, String实例和字符串是不一样的;
console.log(typeof 'A');
console.log(typeof new String('A'));
console.log('A' === new String('A')); // 010 function showCase2(value){
switch(value){
case 'A':
console.log('Case A');
break;
case 'B':
console.log('Case B');
break;
case undefined:
console.log('undefined');
break;
default:
console.log('Do not know!'); }
} showCase2(String('A')); // String(x) 并不创建对象;
console.log(typeof 'A');
console.log(typeof String('A'));
console.log('A' === String('A')); // 011 function isOdd(num){
return num%2 == 1;
}
function isEven(num){
return num%2 == 0;
}
function isSane(num){
return isEven(num)||isOdd(num);
}
var values = [7,4,'13',-9,Infinity];
var res = values.map(isSane);
console.log(values);
console.log(res); // 012
var res1 = parseInt(3,8);
var res2 = parseInt(3,2);
var res3 = parseInt(3,0);
console.log(res1);
console.log(res2);
console.log(res3); // 013 var res = Array.isArray(Array.prototype);
console.log(res);
// Array.prototype => [] // 014 var a=[0];
if([0]){
console.log(a==true);
}else{
console.log('wut');
} console.log(a==true); // false
console.log(a==false); // true
var b=[0,1];
console.log(b==true); // false
console.log(b==false); // false
if(b){
console.log('b is true');
}else{
console.log('b is false');
} // JavaScript-Equality-Table var obj = {}; // 图片上面有表示
if(obj){
console.log('obj if true');
}else{
console.log('obj if false');
} if(a===b){ // undefined === undefined
var a = 'a';
var b = 'b';
console.log('a===b');
}else{
console.log('a!=b');
} // JavaScript-Equality-Table 记忆:括号不恒等,非数(NaN)空象({})恒不等; // 015
var res = ([] == []);
console.log(res);
// 见上图 // 016 var res1 = '5'+3;
var res2 = '5'-3; console.log(res1);
console.log(res2); console.log(typeof res1);
console.log(typeof res2); var res3 ='5'-'3';
console.log(res3);
console.log(typeof res3); // 减号尽可能把操作数变为数字; var res4 = 'a' - '1'; // 就连NaN 的typeof也是数字
console.log(res4); // NaN
console.log(typeof res4); // number // 017
var res = 1+-+++-+1; // 系统提示错误,Uncaught ReferenceError:
console.log(res); +1; // ok
-+1; // OK
+-+1; // OK
++-+1; // Uncaught ReferenceError;
1+-+-+1; // 2 OK ++1;// Uncaught ReferenceError
var i=1;
++i;// 2
++-+i ; // Uncaught ReferenceError // 018
var ary = Array(3);
ary[0] = 2;
var res = ary.map(function(elm){return '1';});
console.log(res); // ["1"],length = 3
var res2 = ary.map(function(elm){return elm;});
console.log(res2); // 好像是清除了空的元素 ,length = 3
console.log(ary); // 但是这个也是 [2]没有空元素,length = 3 var ary2 = [];
ary2[0] = 0,ary2[10] = 10;
var res3 = ary2.map(function(elm) {return elm;});
console.log(res3);
console.log(ary2);
console.log(res3[10]); // 还是一样的稀疏矩阵 // Array.prototype.map 的 polyfill. Array.prototype.map = function(callback, thisArg) { var T, A, k; if (this == null) {
throw new TypeError(' this is null or not defined');
} var O = Object(this);
var len = O.length >>> 0;
if (typeof callback !== 'function') {
throw new TypeError(callback + ' is not a function');
}
if (arguments.length > 1) {
T = thisArg;
}
A = new Array(len);
k = 0;
while (k < len) {
var kValue, mappedValue;
if (k in O) {
kValue = O[k];
mappedValue = callback.call(T, kValue, k, O);
A[k] = mappedValue;
}
k++;
}
return A;
}; */
$(function() {
init();
});
// js44 function init(e) {} /*
*
*
* // 019 function sidEffecting(ary) {
ary[0] = ary[2];
} function bar(a,b,c) {
c = 10;
console.log(arguments);
console.log(a,b,c);
sidEffecting(arguments);
console.log(arguments);
console.log(a,b,c);
return a+b+c;
}
//var res = bar(1,1,1);
//console.log(res); // 21 function bar2(a, b, c=3) { // 如果有默认值,就无法用arguments方式修改了;
c = 10;
console.log(arguments); // [1,1,1]
console.log(a,b,c);
sidEffecting(arguments);
console.log(arguments); // [1,1,1]
console.log(a,b,c);
return a+b+c;
}
//var res2 = bar2(1,1,1);
//console.log(res2); // 12
//var res3 = bar2(1,1);
//console.log(res32); // 12 function bar3(a,b,c) { // 如果传入的参数不够,也无法用arguments方式修改;
console.log(typeof c);
console.log(typeof arguments[2]);
c = 10;
console.log(typeof c);
console.log(arguments);
console.log(a,b,c);
sidEffecting(arguments);
console.log(arguments);
console.log(a,b,c);
return a+b+c;
} var res4 = bar3(1,1);
console.log(res4); // 020 var a = 111111111111111110000, b = 1111;
//123456789012345678901
var c = a+ b; var a1 = 2147483647;
var a2 = Math.pow(2,53); // 可以表示的最大的数字?第6题 9007199254740992(共16位) console.log(c); // 111111111111111110000 与数值的存储方式有关
console.log(typeof a); // number
console.log(a1+b);
console.log(a2);
console.log(a2+1); // a2+1已经不变了;但是a2+2还是会变的; var a3 = 12345678901234567;
console.log(a3); // 12345678901234568
console.log(a3+1); // 021 //var x = [].reverse;
//x(); // Uncaught TypeError: Array.prototype.reverse called on null or undefined var arr = ["a","b","c"];
//console.log(arr.reverse());
var x = arr.reverse;
var res = x.call(arr);
console.log(res);
var arr1 = ["d","e","f"];
var res2 = x.call(arr1);
console.log(res2); // 022
var res = Number.MIN_VALUE >0;
console.log(res); // true
console.log(Number.MIN_VALUE); // 5e-324,接近0,但不是负数;
console.log(Number.MAX_VALUE); // 1.7976931348623157e+308 // 023 var res = [1<2<3,3<2<1];
console.log(res); // [true,true] var res1 = [true<3,false<1];
console.log(res1); // 024 var res = (2==[[[2]]]);
console.log(res);
console.log(Number([2]));
console.log(Number([[2]]));
console.log(Number([[[2]]]));
console.log(Number([2,3])); // NaN
var res1 = (2==[2,3]);
console.log(res1); // false
var res2 = ([2,3]==[2,3]);
console.log(res2); // false // 025 //3.toString();
var res2 = 3..toString();
//3...toString(); console.log(res2); var a = 3; // 3. //.3 // 都是正确的数字表示方法
var res = a.toString();
console.log(res); // 026 (function(){
var x = y = 1;
console.log(x);
console.log(y);
console.log('====');
})();
console.log(this.x); // undefined
//console.log(this.y); console.log(y);
console.log(x); // is not defined //027
var a = /123/, b = /123/;
var res1 = (a==b);
var res2 = (a===b);
console.log(res1,res2); // 即使正则的字面量一致,他们也不相等;
console.log(Number(a)); // NaN
console.log(a+""); // /123/
console.log(a=="/123/"); // true
console.log(a==="/123/"); // false
console.log(a.valueOf());
console.log(a.toString()); // 028
var a = [1,2,3],b=[1,2,3],c=[1,2,4];
var res1 = (a==b);
var res2 = (a===b);
var res3 = a>c;
var res4 = a<c;
console.log(res1,res2,res3,res4);
console.log(a.toString());
console.log(a.valueOf());
console.log(a.valueOf()-b.valueOf());
console.log(!!(a.valueOf()-b.valueOf())); // 029
var a = {}, b = Object.prototype;
var res = [a.prototype === b,Object.getPrototypeOf(a)===b];
console.log(res);
console.log(a.__proto__ === b); // true
console.log(a.prototype); // undefined
console.log(Object.getPrototypeOf(1) === Number.prototype); // true
//console.log(1.__proto__); // 这样写会出错
// Object.getPrototypeOf(obj) 返回一个具体对象的原型 // 030 function f() {}
var a = f.prototype, b = Object.getPrototypeOf(f);
var res = (a===b);
console.log(res);
console.log(b===Function.prototype); // b is f.__proto__
var a1 = new f();
console.log(a1.__proto__ === a); // 031 function foo() {}
var oldName = foo.name;
foo.name = "bar";
console.log(oldName, foo.name); // 函数的name不能修改 var foo2 = function (e) {} console.log(foo2.name); // 匿名函数的name就是一个空字符串
console.log(foo2.name === "");
foo2.name = "bar2";
console.log(foo2.name); // 匿名函数的name也不能修改 // 032
var res = "1 2 3".replace(/\d/g, parseInt);
console.log(res); function showArgs() {
console.group('show Args');
var len = arguments.length;
for(var i=0;i<len;i++){
console.log(arguments[i]);
}
console.groupEnd();
}
function showArgs2(e) {
console.log(arguments);
}
//"1 2 3".replace(/\d/g,showArgs); // 如果replaceText为函数,对于每一个匹配的子字符串,调用该函数时带有m+3个参数,此处m是regExp中捕获的
// 左括弧的个数。第一个参数是匹配的子字符串,接下来的m个参数是查找中捕获的全部结果。第m+2个参数是在stringObj
// 中匹配出现的偏移量,而第m+3个参数为stringObj //"1a2b3c4".replace(/(\d+)(\D+)(\d+)/g,showArgs); // 查看匹配的m个参数 // 替换模式中的子表达式
var res = "1a2b3c4d".replace(/(\d+)(\D+)/g,"$2$1"); // 数字和字母替换
console.log(res);
"1a2b3c4d".replace(/(\d+)(\D+)/g,showArgs2); // 看看匹配的结果
//"1a2b3c4d".replace(/(\d+)(\D+)/g,function($0,$1,$2){
// console.group('show $');
// console.log($0); // 匹配到的字符串
// console.log($1);
// console.log($2);
// console.groupEnd();
//});
var res = "123a456".replace(/\D+/g,"{$&}"); // 给匹配的内容加上{}
//console.log(res);
//var res = "123a456".replace(/\D+/g,"$`"); // 匹配字符串左边的字符
//var res = "123a456".replace(/\D+/g,"$'"); // 匹配字符串右边的字符
//console.log(res); // 033 function f() {}
var parent = Object.getPrototypeOf(f);
//console.log(f.name);
//console.log(parent.name);
//console.log(typeof eval(f.name));
//console.log(typeof eval(parent.name)); // eval() 函数可计算某个字符串,并执行其中的JavaScript代码;
function a(e) {
console.log("this is a function");
}
eval("a"); // 就是一个函数
a; var b = function(){}; // 匿名函数,其name是空字符串;
eval("b");
var res = eval("");
console.log(res); // 034 var lowerCaseOnly = /^[a-z]+$/;
var res = [lowerCaseOnly.test(null),lowerCaseOnly.test()];
console.log(res); // test方法,返回一个boolean值,它指出在被查找的字符串中是否存在模式; var reg = /\D/g;
console.log(reg.lastIndex);
console.log(reg.test("123abc89"),reg.lastIndex);
console.log(reg.test("123abc89"));
console.log(reg.test("123abc89"));
console.log(reg.test("123abc89"),reg.lastIndex); // 如果是全局正则,注意lastIndex熟悉 // 035 var res = [,,,].join(",");
console.log(res); //var arr = [,,,];
//console.log(arr); // []
//console.log(arr.length); // 3
//console.log(arr[0]); // undefined
//console.log(arr.join("*")); // ** var arr2 = [undefined,undefined,undefined,];
console.log(arr2);
console.log(arr2.length);
console.log(arr2[0]);
console.log(arr2.join("*")); // ** // 036 var a = {class:"Animal",name:'Fido','if':"iiff"};
console.log(a.class); // class是关键字
console.log(a['class']); // 推荐使用
console.log(a.if);
console.log(a['if']); // 037 var a = new Date("epoch");
console.log(a); // Invalid Date
console.log(typeof a); // object
console.log(a instanceof Date); // true; a 是Date // 038 var a = Function.length, b = new Function().length;
console.log(a===b); console.log(Function.length); // 这个就是1
console.log(new Function("x","y","return x+y").length); // 这个表示函数的参数个数
var b = new Function("x","y","return x+y");
console.log(b(2,2)); // 039 var a = Date(0);
var b = new Date(0);
var c = new Date();
console.log([a===b, b===c, a===c]);
//console.log(a);
//console.log(b);
//console.log(c);
console.log(a==c); // 这个是相等的
console.log(Date(0));
console.log(Date(60000));
console.log(Date("a")); // 不论输入什么,输出都是 new Date();
console.log(new Date()); // 040 var min = Math.min(), max = Math.max();
console.log(min<max); console.log(Math.min()); // Infinity
console.log(Math.max()); // -Infinity // 041 function captureOne(re, str) {
console.log(re,re.lastIndex);
var match =re.exec(str);
console.log(match);
// console.log(match[1]);
return match && match[1];
} var numRe = /num=(\d+)/g,
wordRe = /word=(\w+)/i,
a1 = captureOne(numRe, "num=1"),
a2 = captureOne(wordRe, "word=1"),
a3 = captureOne(numRe, "NUM=2"),
a4 = captureOne(wordRe, "WORD=2");
console.log([a1===a2,a3===a4]); console.log(a1);
console.log(a2);
console.log(a3); // 有g选项,全文查找出现的所有pattern,注意其lastIndex属性;
console.log(a4); // 042
var a = new Date("2014-03-19"),
b = new Date(2014,03,19);
console.log([a.getDay()===b.getDay(),a.getMonth()===b.getMonth()]); // dateObj = new Date(year,month,date[,hours[,minutes[,seconds[,ms]]]])
// month 必选项。表示月份,从0到11之间的整数(1月至12月)
// getDay方法,返回Date对象中用本地时间表示的一周中的日期值,0至6之间的整数;
// 记忆:What day is today? // 043 if('http://gifwrapped.com/picture.jpg'.match('.gif')){
console.log('a gif file');
}else{
console.log('not a gif file');
} // String.prototype.match接受一个正则,如果不是,按照 new RegExp(obj)转化,所以.不会转义 // 044 function foo(a) {
var a;
return a;
} function bar(a) {
var a = "bye";
return a;
} console.log([foo('hello'),bar('hello')]); var a = "a string";
var a; // 可以定义多次;
console.log(a); *
*/
 

JavaScript 44 Puzzlers的更多相关文章

  1. 【转载】Nginx+Tomcat 动静分离实现负载均衡

    0.前期准备 使用Debian环境.安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等. 1.一份Nginx.conf配置文件 1 # 定义Nginx运行的用户 和 用户组 如 ...

  2. 【Mood-14】龙虎榜 活跃在github中的1000位中国开发者

    Last cache created on 2015-01-07 by Github API v3. ♥ made by hzlzh just for fun. Rank Gravatar usern ...

  3. Laravel Vuejs 实战:开发知乎 (10)使用 Select2 优化话题选择

    1.添加选择Topic 使用Select2,如何安装Select2 ,具体使用实例 Select2 and Laravel: Ajax Autocomplete 及 Loading data remo ...

  4. 44 道 JavaScript 难题(JavaScript Puzzlers!)

    JavaScript Puzzlers原文 1. ["1", "2", "3"].map(parseInt) 答案:[1, NaN, NaN ...

  5. 44道JavaScript送命题

    很久以前看过一个老外写的帖子,JavaScript Puzzlers!,直译就是JavaScript难题,里面列举了100道JavaScript选择题,大部分都是让人摸不着头脑的题目,需要仔细琢磨一番 ...

  6. (转)javascript 奇淫巧技44招

    1.首次为变量赋值时务必使用var关键字 变量没有声明而直接赋值得话,默认会作为一个新的全局变量,要尽量避免使用全局变量. 2.使用===取代== ==和!=操作符会在需要的情况下自动转换数据类型.但 ...

  7. javascript 奇淫巧技44招

    1.首次为变量赋值时务必使用var关键字 变量没有声明而直接赋值得话,默认会作为一个新的全局变量,要尽量避免使用全局变量. 2.使用===取代== ==和!=操作符会在需要的情况下自动转换数据类型.但 ...

  8. 44个 Javascript 变态题解析 (上\下)

    第1题 ["1", "2", "3"].map(parseInt) 知识点: Array/map Number/parseInt JavaS ...

  9. 44 个 JavaScript 变态题解析

    当初笔者做这套题的时候不仅怀疑智商, 连人生都开始怀疑了…. 不过, 对于基础知识的理解是深入编程的前提. 让我们一起来看看这些变态题到底变态不变态吧! 第1题 ["1", &qu ...

随机推荐

  1. HDU 5534 Partial Tree

    2015 ACM/ICPC 长春现场赛 H题 完全背包 #include<cstdio> #include<cstring> #include<cmath> #in ...

  2. c# mouseenter mousemove区别?

    onmousedown 当用户用任何鼠标按钮单击对象时触发. onmouseenter 当用户将鼠标指针移动到对象内时触发. onmouseleave 当用户将鼠标指针移出对象边界时触发. onmou ...

  3. HTTP Request header

    HTTP Request header HTTP协议详解 - 小坦克 - 博客园 HTTP Request header 当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Pe ...

  4. 翻译的很好的一篇android mediaplayer

    MediaPlayer类可用于控制音频/视频文件或流的播放.关于如何使用这个类的方法还可以阅读VideoView类的文档. 1.状态图对播放音频/视频文件和流的控制是通过一个状态机来管理的.下图显示一 ...

  5. PAT 天梯赛 L1-009 N个数求和

    模拟题 题目链接 题解 每次将两个分数进行相加,到最后再将结果化成带分数.主要考察的最大公约数与最小公倍数. 代码如下: #include<cstdio> #include<cstd ...

  6. Java谜题心得

    1,二进制浮点数的运算是对实际算数的一种近似运算. 2,IEEE 754浮点算术保留了一个特殊的值用来表示一个不是数字的数量[IEEE 754].这个值就是NaN(“不是一个数字(Not a Numb ...

  7. (简单) POJ 2387 Til the Cows Come Home,Dijkstra。

    Description Bessie is out in the field and wants to get back to the barn to get as much sleep as pos ...

  8. apache、nginx、iis 全球分布

    从下图(2012年8月份的数据)来看,来自俄罗斯的Nginx服务器,主要使用区域也集中在俄罗斯及周边国家.微软的IIS,在中国使用最多,占其总份额的57.6%,其他国家如埃及.沙特阿拉伯等国家也基本使 ...

  9. python模块--ip地址转换为整数

    python整数与IP地址转换 [转] 我们有时会将一个整数与IP地址进行互换,用python代码实现很简单 将一个整数如2000000,变为一个IP地址的方式 >>> import ...

  10. mustache.js使用基本(二)sections

    作者:zccst 本文记录基本使用二,主要讲sections. {{#person}} {{/person}} 1,当person是null, undefined, false, 0, NaN, &q ...