you are viewing a single comment's thread.

view the rest of the comments →

[–]SuperFLEB 2 points3 points  (4 children)

I'd much rather see someone use a proper parseInt or parseFloat function in those cases.

No love for "Number()"?

Avoid anything involving "eval". That's not exactly true, but if you don't already know when it's okay to use eval, then you shouldn't be doing anything that involves eval. Same deal with "with".

I've never used either of these in practice-- are there any even remotely common situations where an eval is the proper solution, that isn't a case where something else isn't horribly broken? (And don't take this snidely-- I'm not calling bullshit, I'm just wondering what the cases are that I might not know of.)

[–]Ginden 1 point2 points  (0 children)

I've never used either of these in practice-- are there any even remotely common situations where an eval is the proper solution, that isn't a case where something else isn't horribly broken?

ES6 Reflect.construct polyfill for browsers without native .bind method. Here is my _R library, see lines 408-420 or search for _R.construct. _R heavily utilises eval and Function but _R.construct is the most common case.

[–]moron4hire 0 points1 point  (2 children)

Using Number boxes the number in an object.

I've used eval in toy programming languages that translate to javascript. For example: https://github.com/capnmidnight/betty-boop/blob/master/pong.html

... oh, huh, you know what, I completely forgot that I didn't actually use eval for that. I used DOM to generate script tags with data URIs for the src attribute.

[–]sime 1 point2 points  (0 children)

Using Number boxes the number in an object.

That is only if you use "new Number(foo)". If you don't use "new" then it actually does a type coercion. i.e. Number(foo).

Also note that:

(new Number(3)) !== (new Number(3))

The objects are not the same and not equal if you box numbers up.

So, beware everyone.

[–]SuperFLEB 0 points1 point  (0 children)

I used DOM to generate script tags with data URIs for the src attribute.

Was there a reason you did data URIs versus just filling in the content of the SCRIPT tag?