<html>
<head>
<script src="//fb.me/react-with-addons-0.14.3.js"></script>
<script src="//fb.me/react-dom-0.14.3.js"></script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<div class='container'>
<div>
<span class="name">ArrayExpression</span>
<span class="value">[]
</span>
</div>
<div><span class="name">ArrayPattern</span>
<span class="value">[a] = 0
</span>
</div>
<div><span class="name">ArrowFunctionExpression</span>
<span class="value">() => {}
</span>
</div>
<div><span class="name">AssignmentExpression</span>
<span class="value">a = 1
</span>
</div>
<div><span class="name">AssignmentPattern</span>
<span class="value">//
</span>
</div>
<div><span class="name">AwaitExpression</span>
<span class="value">await
</span>
</div>
<div><span class="name">BinaryExpression</span>
<span class="value">a + b
</span>
</div>
<div><span class="name">Block</span>
<span class="value">{ toto }
</span>
</div>
<div><span class="name">BlockStatement</span>
<span class="value">{
salut;
}
</span>
</div>
<div><span class="name">BreakStatement</span>
<span class="value">break;
</span>
</div>
<div><span class="name">CallExpression</span>
<span class="value">toto
</span>
</div>
<div><span class="name">CatchClause</span>
<span class="value">catch {
}
</span>
</div>
<div><span class="name">ClassBody</span>
<span class="value">class {
}
</span>
</div>
<div><span class="name">ClassDeclaration</span>
<span class="value">class {
}
</span>
</div>
<div><span class="name">ClassExpression</span>
<span class="value">a = class {}
</span>
</div>
<div><span class="name">ClassProperty</span>
<span class="value">class {
toto = 1
}
</span>
</div>
<div><span class="name">ClassPropertyDefinition</span>
<span class="value">class {
toto = 1
}
</span>
</div>
<div><span class="name">Comment</span>
<span class="value">//
</span>
</div>
<div><span class="name">ComprehensionBlock</span>
<span class="value">[for (x of itérable) x]
</span>
</div>
<div><span class="name">ComprehensionExpression</span>
<span class="value">[for (x of itérable) x]
</span>
</div>
<div><span class="name">ConditionalExpression</span>
<span class="value">a ? 1 : 2
</span>
</div>
<div><span class="name">ContinueStatement</span>
<span class="value">continue;
</span>
</div>
<div><span class="name">DebuggerStatement</span>
<span class="value">debugger;
</span>
</div>
<div><span class="name">Declaration</span>
<span class="value">
</span>
</div>
<div><span class="name">DoWhileStatement</span>
<span class="value">do { } while ()
</span>
</div>
<div><span class="name">ExpressionStatement</span>
<span class="value">a = 1
</span>
</div>
<div><span class="name">File</span>
<span class="value">//
</span>
</div>
<div><span class="name">ForInStatement</span>
<span class="value">for (let i in a)
</span>
</div>
<div><span class="name">ForOfStatement</span>
<span class="value">for (let i of a)
</span>
</div>
<div><span class="name">ForStatement</span>
<span class="value">for (start; cond; step) {}
</span>
</div>
<div><span class="name">Function</span>
<span class="value">//
</span>
</div>
<div><span class="name">FunctionDeclaration</span>
<span class="value">function () {}
</span>
</div>
<div><span class="name">FunctionExpression</span>
<span class="value">a = function () {}
</span>
</div>
<div><span class="name">GeneratorExpression</span>
<span class="value">a = function * () {}
</span>
</div>
<div><span class="name">Identifier</span>
<span class="value">toto;
</span>
</div>
<div><span class="name">IfStatement</span>
<span class="value">if () {}
</span>
</div>
<div><span class="name">ImportDeclaration</span>
<span class="value">import
</span>
</div>
<div><span class="name">ImportDefaultSpecifier</span>
<span class="value">import toto from 'tata'; // toto
</span>
</div>
<div><span class="name">ImportNamespaceSpecifier</span>
<span class="value">//
</span>
</div>
<div><span class="name">ImportSpecifier</span>
<span class="value">import { coucou as toto } from 'salut'; // coucou as toto
</span>
</div>
<div>
<span class="name">JSXAttribute</span>
<span class="value">
<div attr="value" /> // attr="value"
</span>
</div>
<div><span class="name">JSXClosingElement</span>
<span class="value">
</div>
</span>
</div>
<div><span class="name">JSXClosingFragment</span>
<span class="value">
</span>
</div>
<div>
<span class="name">JSXElement</span>
<span class="value">
</span>
</div>
<div>
<span class="name">JSXEmptyExpression</span>
<span class="value">
<div toto={} /> // {}
</span>
</div>
<div>
<span class="name">JSXExpressionContainer</span>
<span class="value">
<div toto={} /> // {}
</span>
</div>
<div><span class="name">JSXFragment</span>
<span class="value">//
</span>
</div>
<div>
<span class="name">JSXIdentifier</span>
<span class="value">
<div toto /> // toto
</span>
</div>
<div><span class="name">JSXMemberExpression</span>
<span class="value">//
</span>
</div>
<div><span class="name">JSXNamespacedName</span>
<span class="value">//
</span>
</div>
<div><span class="name">JSXOpeningElement</span>
<span class="value"></span>
</div>
<div></div>
// </span>
</div>
<div>
</span>
</div>
<div><span class="name">JSXOpeningFragment</span>
<span class="value">//
</span>
</div>
<div>
<span class="name">JSXSpreadAttribute</span>
<span class="value">
<div {...children} /> //
</span>
</div>
<div><span class="name">JSXSpreadChild</span>
<span class="value">//
</span>
</div>
<div>
<span class="name">JSXText</span>
<span class="value">
<div label="text"> // "text"
</span>
</div>
<div><span class="name">LabeledStatement</span>
<span class="value">label: 1
</span>
</div>
<div><span class="name">Literal</span>
<span class="value">1
</span>
</div>
<div><span class="name">LogicalExpression</span>
<span class="value">
</span>
</div>
<div><span class="name">MemberExpression</span>
<span class="value">
</span>
</div>
<div><span class="name">MethodDefinition</span>
<span class="value">class Toto {
tutu () => {}
}
</span>
</div>
<div><span class="name">NewExpression</span>
<span class="value">new toto()
</span>
</div>
<div><span class="name">ObjectExpression</span>
<span class="value">a = {1:2} // {1:2}
</span>
</div>
<div><span class="name">ObjectPattern</span>
<span class="value">const {toto} = salut // {toto}
</span>
</div>
<div><span class="name">RestElement</span>
<span class="value">[a, ...rest] // rest
</span>
</div>
<div><span class="name">ReturnStatement</span>
<span class="value">return;
</span>
</div>
<div><span class="name">SpreadElement</span>
<span class="value">//
</span>
</div>
<div><span class="name">SpreadElementPattern</span>
<span class="value">//
</span>
</div>
<div><span class="name">SpreadProperty</span>
<span class="value">a = {...b, ...c} // ...b and ..c
</span>
</div>
<div><span class="name">SpreadPropertyPattern</span>
<span class="value">//
</span>
</div>
<div><span class="name">SwitchCase</span>
<span class="value">switch {
case 1
}
</span>
</div>
<div><span class="name">SwitchStatement</span>
<span class="value">switch {}
</span>
</div>
<div><span class="name">TaggedTemplateExpression</span>
<span class="value">salut`coucou`
</span>
</div>
<div><span class="name">TemplateElement</span>
<span class="value">`a ${toto}` // both a and ${toto} are TemplateElements
</span>
</div>
<div><span class="name">TemplateLiteral</span>
<span class="value">`template literal`
</span>
</div>
<div><span class="name">ThisExpression</span>
<span class="value">this
</span>
</div>
<div><span class="name">ThrowStatement</span>
<span class="value">throw toto
</span>
</div>
<div><span class="name">TryStatement</span>
<span class="value">try {}
</span>
</div>
<div><span class="name">UnaryExpression</span>
<span class="value">+a
</span>
</div>
<div><span class="name">UpdateExpression</span>
<span class="value">++1
</span>
</div>
<div><span class="name">VariableDeclaration</span>
<span class="value">a = 1
</span>
</div>
<div><span class="name">VariableDeclarator</span>
<span class="value">a, b = 1 // a is a variable declarator
</span>
</div>
<div><span class="name">WhileStatement</span>
<span class="value">while () {}
</span>
</div>
<div><span class="name">WithStatement</span>
<span class="value">
</span>
</div>
<div>
<span class="name">YieldExpression</span>
<span class="value">yield 1;
</span>
</div>
</div>
</body>
</html>
const App = React.createClass({
render: function () {
return <div>Hello world !</div>;
}
});
ReactDOM.render(<App/>, document.querySelector('#app'));
Output
You can jump to the latest bin by adding /latest
to your URL
Keyboard Shortcuts
Shortcut | Action |
---|---|
ctrl + [num] | Toggle nth panel |
ctrl + 0 | Close focused panel |
ctrl + enter | Re-render output. If console visible: run JS in console |
Ctrl + l | Clear the console |
ctrl + / | Toggle comment on selected lines |
ctrl + ] | Indents selected lines |
ctrl + [ | Unindents selected lines |
tab | Code complete & Emmet expand |
ctrl + shift + L | Beautify code in active panel |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Open the share options |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
JS Bin URLs
URL | Action |
---|---|
/ | Show the full rendered output. This content will update in real time as it's updated from the /edit url. |
/edit | Edit the current bin |
/watch | Follow a Code Casting session |
/embed | Create an embeddable version of the bin |
/latest | Load the very latest bin (/latest goes in place of the revision) |
/[username]/last | View the last edited bin for this user |
/[username]/last/edit | Edit the last edited bin for this user |
/[username]/last/watch | Follow the Code Casting session for the latest bin for this user |
/quiet | Remove analytics and edit button from rendered output |
.js | Load only the JavaScript for a bin |
.css | Load only the CSS for a bin |
Except for username prefixed urls, the url may start with http://jsbin.com/abc and the url fragments can be added to the url to view it differently. |