JavaScript string to number conversion table
by dshilkret
CSS
body {
padding: 30px;
}
table {
border-collapse: collapse;
}
td {
border: 1px solid #e0e0e0;
padding: 5px;
font: 12px Consolas,monospace;
}
td:not(:first-child) {
text-align: right;
}
thead td {
background: #3663AE;
color: white;
font-weight: 800;
}
b {
color: red;
font-weight: normal;
}
.o1 {
background: #fafafa;
}
JavaScript
table = function(tab) {
return "<table>"
+ "<thead>" + tr(tab.shift()) + "</thead>"
+ "<tbody>" + tab.map(tr).join("") + "</tbody>"
+ "</table>";
}
var o = 0;
tr = function(row) {
o = 1 - o;
return "<tr class='o" + o + "'>" + row.map(function(s) {
return "<td>" + s + "</td>";
}).join("") + "</tr>";
};
str = function(n) {
if(isNaN(n))
return '<b>' + String(n) + '</b>';
return String(n);
}
xs = [
"'123'",
"'+123'",
"'-123'",
"'123.45'",
"'-123.45'",
"'12e5'",
"'012'",
"'0xBABE'",
"'0xFFFFFFFF'",
"'123456789012345678'",
"''",
"'123foo'",
"'123.45foo'",
"' 123 '",
"'foo'",
"null",
"window.undef",
"true",
"false",
"{}",
"{valueOf: function(){return 125}}",
"'+0'",
"'-0'",
"'Infinity'",
"'+Infinity'",
"'-Infinity'",
'NaN'
]
tab = [[
"x",
"parseInt(x)",
"parseFloat(x)",
"Number(x)",
"+x",
"~~x",
"x>>>0"
]].concat(xs.map(function(x) {
var y = eval("(" + x + ")");
y = "1647454548";
return [
x,
str(parseInt(y)),
str(parseFloat(y)),
str(Number(y)),
str(+y),
str(~~y),
str(y>>>0)
]
}));
document.body.innerHTML = table(tab)