How to use eval() safely in JavaScript for education app? [duplicate] - javascript

This question already has answers here:
Is it possible to sandbox JavaScript running in the browser?
(15 answers)
Closed 3 years ago.
I'm aware similar questions have been asked before, but my use-case is a little different.
I'd like to create an educational app similar to LeetCode, CodeWars, etc. where users can type in their own functions to solve algorithms.
Right now, I'm focusing on JavaScript, so the code could be evaluated on client-side.
I want to know, what considerations should I take into account to use eval() and new Function() safely?
Or is there a better alternative?

Luckily you're not alone, and someone invented the wheel before you. You can check out NeilFraser/JS-Interpreter or sandbox.
There may be even better documented/implemented solutions that I'm not aware of, but it's a good start.

Related

The role of this.async(); in Javascript? [duplicate]

This question already has answers here:
What does this.async() do in JavaScript
(3 answers)
Closed 3 years ago.
This might be a possible duplicate of this question What does this.async() do in JavaScript but that question is under a different circumstance and the accepted answer got negative vote, hence wrong or original question unaddressed. Also the most liked answer did not clarify it, the answerer also said so in his answer.
What is the actual use of this.async(); is JS? Is it part of the core JS language or a conventional function used by libraries? I couldn't find any documentation on this.
The this.async() is not standard (core) JS function
this.async();
If anybody else is wondering about this. I just found this link which kind of sums it up and details the use case.
https://github.com/sboudrias/run-async#readme
And Grunt also use this same technique to know that an async task has finished.
https://gruntjs.com/inside-tasks

Installing third party javascript [duplicate]

This question already has answers here:
How can I obfuscate (protect) JavaScript? [closed]
(22 answers)
Closed 4 years ago.
I'm installing Intercom (https://www.intercom.com) for customer engagement on my site. With the recommended installation the javascript snippet they gave would have my intercom app_id exposed in the page source.
May not be a big deal, but I was wondering if there was a better way where I could keep that hidden.
May not be a big deal
It isn't.
but I was wondering if there was a better way where I could keep that hidden
You can't.
Intercom need the browser to tell them your ID for their approach to work.
This means you must tell the browser your ID.
The browser is the property of the user and it answers to them.
It is not possible to give the browser information and keep it secret from the user who owns the browser.

How to prevent my code from modifying or copying [duplicate]

This question already has answers here:
How can I prevent javascript code theft?
(7 answers)
Closed 5 years ago.
I develop a small website now some of my friends asking to give us the code.so i want now to do a trick in my code that no one can copy or modify my code.if any one know's please post.
Copy: Forget it. If you give the code to someone, he can just copy and re-use it. Consider using an appropriate license for your code to make shure the receiver knows what he is allowed to do with your code
Changes: Use a version control system. As a developer you must learn to use at least one. Do it now. I recommend git, but there are plenty of VCS`ses available (svn,bazaar,cvs...)

Javascript : What are the different conditions when javascript work in IE but not in Firefox or some other browser? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 9 years ago.
Improve this question
Javascript : What are the different conditions when javascript work in IE but not in Firefox or some other browser?
one that i know of is that while using certain window events..
What other scenarios can cause javascript to not work properly?
The answer is too complex to fully list here. Use sites like http://caniuse.com that will tell you which JavaScript is available in which browser.
Generally speaking, all browsers implement JavaScript differently. Microsoft have long been stuck in their own world, implementing their own ways to do things, whereas everyone else seems to try and conform to the standards as much as possible. Microsoft are coming around to the "standards" way of doing things, and from what I hear, IE11 will be a massive step in this direction.
As already mentioned, you can use http://caniuse.com/ to find what you can and can't do in different browsers, but then you'll likely end up doing what many others have done...write your own API which works around these to achieve a task...which is a bit unnecessary, unless you can find a ground-breaking way to implement your API that will be beneficial to other developers.
APIs like jQuery already work around these differences. The aim with these libraries is to provide clean JavaScript, whilst being completely transparent from the underlying JavaScript implementation.
Also, look into "shim"/"polyfill" implementations. These are used when a core feature that is recognised as part of an ECMAScript version has not been implemented in the browser. These provide the implementation for you, if it is not natively supported.

Learning JavaScript by reading first or writing first? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I did check (and read) a few similar questions here, but this really applies to everyone differently since no one learns the same.
My question is not on what resources to use, for that I have plenty.
I am working my way through JavaScript: The Definitive Guide (and I have the good parts as well).
I'm reading up on the core language but I don't feel like the information is sticking (or rather I'm not getting much out of it).
My question is should I just write an application in JavaScript and reference my books (I'm a very hands on person, but do enjoy reading), or should I keep reading the book, do the exercises, and then write a program?
In short: should I just write js app first and reference my book, or read the book first doing the examples and then write a js application? I've done some basic programming in PHP/Python (nothing meaningful yet).
I always learn math this way and I suppose, I'm conflicted in how I should tackle learning a language. I feel like I could read many books, but perhaps this isn't the best way for me (I know others learn differently).
For starts, I'm considering writing a simple calculator in JS.
Like for any languages I would suggest to do both.
You have to immediately start applying what you are studying. This way you will focus what you learned and understand better how the language works.
JavaScript is a highly flexible language. You can start soft, then learn new things each day and it will grow with you. You will never stop learning with JavaScript because it's easy to start but difficult to master.
You can start with really small scripts. When you start to feel confident you can create more advanced scripts, start using frameworks, write plugins for them, and ultimately your own library of functions.
I only suggest you to start learning best practices as soon as possible, because there are many things you have to avoid while programming in JS.
Then as a last word, always do what you feel like is better, don't go crazy trying to learn everything immediately. Everyone learns and works at his own pace.

Categories

Resources