这是我参与【第五届青训营】伴学笔记创作活动的第五天
Js与ECMAScript(ES)是一个东西
变量定义:
使用let,const(定义变量后,值无法更改),不建议使用var
变量名:必须是合法的标识符,不能以数字开头
表达式:返回一个值,与语句区别
动态类型:类型运行时可变,可动态检测
使用let或者const会生成块级作用域
变量屏蔽与作用域
对象是属性的集合
合法标识符:不能有空格,短杠,不能以数字开头
对象属性是函数的话,一般称为对象的方法
Object.keys(对象)会返回对象的全部属性
遍历对象属性:
For(const key in 对象)
{
Console.log(key.对象[key]);}
Delete 对象.属性 删除对象的属性
Const不变性指的一个对象对应一个内存区域,这个内存区域的指向关系是不能变的,但这个内存区域指向的内容是可变。
this指调用方法的实例(对象)
类中的方法属于类,是所有实例所共享的,而实例里没有类的方法,他只能访问和使用类的方法
因为他能访问到
所以console.log(‘方法’ in 实例)会返回true
Node.js的应用场景
1. 前端工程化
Bundle:webpack,vite,esbuild,parcel
Uglify:uglifyjs
Transpile:bablejs,typescript
其他语言加入竞争:esbuild,parcel,prisma
现状:难以替代
2. Web服务端应用
学习曲线平缓,开发效率高
运行效率接近常见的编译语言
社区生态丰富及工具链成熟(npm,V8,inspector)
与前端结合的场景会有优势
现状:竞争激烈,Node.js有自己独特的优势
3. Electron跨端桌面应用
商业应用:vscode,slack,discord,zoom
大型公司内的效率工具
现状:大部分场景在选型时,都值得考虑
Node.js运行时结构
V8:JavaScript Runtime,诊断调试工具(inspector)
Libuv:eventloop(事件循环),封装各种操作系统上的API,提供跨平台的IO操作,syscall(系统调用)
Node.js运行时结构-特点
1. 异步I/O
2. 单线程
3. 跨平台
在这次的学习中,我学会了node.js的基础知识,知道了他是如何运行的,是用来干什么,随着以后的深入学习一定可以更上一层楼