4 ms·
I'd like to have a guide for writing code that is easily optimized by V8 and similar engines. Having local variables is good, as far as I can tell, but it would
by VMG 16y ago
I'd like to have a guide for writing code that is easily optimized by V8 and similar engines. Having local variables is good, as far as I can tell, but it would be nice to have a full overview with dos and don'ts
- drivebyacct2 16y ago"Having local variables is good" Reading sentences like this scare me because it reminds me that some people don't know what the 'var' keyword means or think it's acceptable to shove everything in window or global.
- ams6110 16y agoLast I read, JavaScript has 2 scopes: function scope, and global scope. Unlike many languages, there is no block scope (e.g. a counter in a for loop).
- carussell 16y agoThere is in Mozilla https://developer.mozilla.org/en/New_in_JavaScript_1.7#let_statement https://developer.mozilla.org/en/New_in_JavaScript_1.7#let_s... http://wiki.ecmascript.org/doku.php?id=proposals:block_expressions&s=let http://wiki.ecmascript.org/doku.php?id=proposals:block_expre...
- solutionyogi 16y agoIt's definitely not available in current JavaScript interpreter in different browsers.
- drivebyacct2 16y agoI feel dumb now because I fear I don't understand what you mean when you say block scope... for(var i=0; i<3; i++) { console.log(i); } appears to be valid... (or just in Chrome?)
- aboodman 16y agoValid, just doesn't do what you think. function foo() { var x = 1; if (true) { var x = 2; var y = 3; } console.log(x); console.log(y); } foo(); // 2, 3 (vs 1, undefined if there was block scope)
- drivebyacct2 16y agoThanks for the explanation!
- pornel 16y agoJS performs "variable hoisting", so your example is interpreted as: function(){ var i; … for(i=0; … It has surprising side effects: alert(i); var i; works and outputs "undefined", which is value of the variable i that is defined. alert(k); var i; This is an error, and will fail to execute because of undefined variable.
- eru 16y agoOn the other hand, JavaScript allows you to nest functions, unlike many languages.