JavaScript can not only write front-end, it can also write back-end; JavaScript can use Node.js to achieve back-end development. Node.js is a development platform that allows JavaScript to run on the server. It is an event-driven "I/O" server-side JavaScript environment. Node.js can be understood as JavaScript running on the server, so JavaScript can be written on the backend.
The operating environment of this tutorial: windows7 system, javascript version 1.8.5, Dell G3 computer.
JavaScript can not only write the front end, it can also write the back end.
JavaScript can achieve back-end development through Node.js technology. Node.js is a development platform that allows JavaScript to run on the server. It allows JavaScript to become a service with PHP, Python, Perl, Ruby, etc. A scripting language on par with terminal languages.
Node.js allows js to run on the server side, and uses the Google v8 engine to bring about a performance leap, making its performance almost close to that of the go language. The asynchronous programming method allows it to handle huge concurrency. But it now also has the following shortcomings:
There is no highly unified development method like the Spring framework of Java; The ecology is not perfect enough. As a front-end developer who wants to develop the backend, you may be embarrassed by yourself first. But in fact, for small and medium-sized systems, the most important thing to develop a backend is to be familiar with "SQL". As long as you master this, you will be able to get started with backend development. Because everything else is prepared for you by the framework.
Selection of framework
The node frameworks currently used for back-end development are:
So how should we choose? A good way is to look at the start of github. Then we compared the start of koa which is the most popular. However, the author here recommends everyone to use egg for the following reasons:
javascript Things you must know before writing the backend
Node breaks the bottleneck that JS can only develop front-end, and truly realizes the feat of those who master JS conquering the world! However, doing back-end is much more rigorous than doing front-end, so you must be aware of some "BUGs" in the JS language. Don't let the data go wrong and you'll be completely confused.
The following are examples of some common problems in JS data processing, as well as solutions! Help everyone consolidate the foundation of JS and avoid detours in work.
1. The problem of floating point data losing precision:
Floating point type is divided into single precision floating point type (float)andDouble precision floating point type (double) , which is described in detail in strongly typed languages (C, JAVA), is collectively called Number type (Number) in JS. Interested readers can learn relevant knowledge. This article continues to return to the above questions.
First look at the performance of the loss of accuracy problem. The source code is as follows:
console.log(0.1+0.2); //0.30000000000000004
The result should be 0.3, but the running result appears A confusing question. This is absolutely not allowed in back-end development. This problem does not only appear in JS. After testing, this problem exists in JAVA and PHP, but does not exist in C. Why haven’t I learned any other languages? I don’t know why!
After talking about the problem, let’s talk about the solution. The source code is as follows:
const floatAdd = (arg1, arg2) => { let r1,r2,m; try { r1 = arg1.toString().split(".")[1].length; } catch(e) { r1 = 0; } try { r2 = arg2.toString().split(".")[1].length; } catch(e) { r2 = 0; } m =Math.pow(10,Math.max(r1,r2)); return (arg1*m+arg2*m)/m; }; console.log(floatAdd(0.1,0.2)); // 0.3
Fortunately, through the above code, we got the correct result we wanted, but JS left us with problems It’s not over yet, please see the following questions
2. The rounding bug of toFixed():
This question is still related to the previous question "Floating point" data. See the sample code below:##toFixed() The method uses fixed point notation to format a numeric value. To put it simply, it is the process of rounding the data, and the fixed point represents the number of decimal places to be retained.
let a=1.115; console.log(a.toFixed(2)) //1.11
1.12. The clever editor is trying hard to find ways to circumvent the pitfalls. Please see the source code:
const newToFixed=(value,length)=>{ let tempNum = 0; let s,temp; let s1 = value + ""; let start = s1.indexOf("."); if(s1.substr(start+length+1,1)>=5){ tempNum=1; } temp = Math.pow(10,length); s = Math.floor(value * temp) + tempNum; return s/temp; } console.log(newToFixed(1.115,2)) //1.12
Tens of millions of lines of code, the first basic line. The foundation is not solid, and I will shed tears from now on.
Note: The code example uses the ECMAScript 2015 version syntax. If you have compatibility requirements, don’t forget to modify the source code.Tens of millions of lines of code are compatible with the first line. Compatible or not, I shed tears in the first two lines.
[Related recommendations: web front-end development]
The above is the detailed content of Can JavaScript only be used to write front-end?. For more information, please follow other related articles on the PHP Chinese website!