node基础引入

it2024-11-01  6

node JS 是什么? 前端后端 网络之前 网络之后 浏览器: HTML,CSS,JS 安卓:Java,Python,c++,c# IOS:C++,Object-c; 服务端:linux; Java,C++,Python,C++,c#,NodeJS,PHP 计算机语言: HTML(标记语言) 编程语言:1.机器语言(机器码,原生码)低级语言 2.汇编语言 低级语言 3.高级语言:if else var float int 可读性更强 Javas比C高级,NodeJS比Java高级 Java和JS有自动回收机制 NodeJS有线程池 不需要关注更底层的操作

JS预编译的五步 1.var 形参 undefined,统一,function,执行 1.词法分析(分词 tokenizing),语法分析(parsing),语义分析(代码生成)编译的过程;

词法分析(分词 tokenizing) 1.识别关键字;var function 2.标识符:var a = 1; function test(){}; 3.分解符:划分界限的专作用 () {} (function t(a,b){}) 4.运算符: + - * / ^(按位 异或运算) || && |(按位或) &(按位与)

语法分析:树,数组,栈,堆 语法抽象树(Abstract Syntax Tree)(非线性结构)

语义分析(parsing)(AST) -> (目标平台–操作系统windows)可执行的二进制码(机器码) 前端的对象–浏览器 readFile();

NodeJS和JS不是一种语言。 后端的对象–不限于浏览器 linux-- centos(命令行) ubuntu(有可视化界面的) API

I/O input/output 硬盘中的输入输出

关系型数据库(mySQL(全部存储在磁盘中)),非关系型数据库(mongoDB(一部分存储在磁盘中,一部分存储在内存中),redis(全部存储在内存中)) I/O操作 非常费时 内存ns(纳秒) 10E-9s GB/s 30亿 ram 硬盘 ms(毫秒) 10E-3s 100w倍 MB/s

readFile(); console.log(1); console.log(2); 阻塞I/O:I/O等待I/O完成才进行下一步操作; 非阻塞I/O:I/O不等待I/O完成就进行下一步操作; 异步非阻塞I/O模型; I/O密集和CPU密集; 2009.3 Ryan dahl C++ NodeJS Web.js Node 不是单线程,多线程有一个主线程 前端JS是单线程的 单线程:1.多核CPU的性能浪费;child_process;2.阻塞代码的运行; Libuvb fn = fn(n-1)+fn(n-2)
最新回复(0)