Node学习笔记(一)
Node学习笔记(一)1.Node的简介Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,nodejs允许javascript代码运行在服务端
单线程
非阻塞I/O
事件驱动单线程单线程:不再有线程的创建、销毁的时间开销。单线程也能造成宏观上的“并发”非阻塞I/OI/O阻塞了代码的执行,极大地降低了程序的执行效率。而非阻塞模式下,一个线程永远在执行计算操作,这个线程的CPU核心利用率永远是100%。
2.模块化系统导入导出Node.js中的模块分类:
核心模块(已封装好的内置模块)
自己定义模块
第三方模块
Node中每个模块都有一个module对象,module对象中的有一个exports属性为一个接口对象,我们需要把模块之间公共的方法或属性挂载在这个接口对象中,方便其他的模块使用这些公共的方法或属性。
Node中每个模块的最后,都会return: module.exports。
Node中每个模块都会把module.exports指向的对象赋值给一个变量exports,也就是说:exports = module.exports。
mo ...
Node学习笔记(二)
Node学习笔记(二)Node事件循环Node.js 是单进程单线程应用程序,但是因为V8引擎提供的异步执行回调接口,通过这些接口可以处理大量的并发,所以性能非常高。
Node.js 几乎每一个 API 都是支持回调函数的。
Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。
Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数.
12345678910111213141516171819202122开启进程开启线程初始化数据,window/document/location...while(true){ 初始化事件列表 根据事件修改数据 根据数据去渲染页面 if(count=0){ 运行js代码 btn.onclick = function(){ document.body.style.background = "skyblue ...
Node学习笔记(三)
Node学习笔记(三)path模块
path.resolve([…paths])把一个路径或路径片段得多序列解析为一个绝对路径12path.resolve('foo','/baz','bar');//C:\baz\bar
path.join([…paths])方法使用平台特定的分隔符吧所有全部给定的path拼接到一起,并规范化生成的路径。12345678910111213141516171819202122232425262728293031323334353637let path = require("path")let fs = require("fs")console.log(path)let strPath = "http://www.newsimg.cn/xjp20171103/images/xjp_banner.jpg";//获取路径信息的扩展名let info =path.extname(strPath)console.log(info)let arr ...
Node学习笔记(四)
Node学习笔记(四)url模块1.url.parse()url.parse() 方法可以解析一个url地址,通过传入第二个参数(true)把包含有查询字符串的query转换成对象
12let url=require('url');let obj=url.parse('http://www.baidu.com?name=cc&age=24')
2.url.resolve()url.resolve()方法解析相对于基URL的目标URL。第一个参数:基URL,第二个参数:目标URL (合成)
12let url=require('url');let obj=url.resolve('http://www.baidu.com/home','/about')
url模块的应用–爬取数据123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555 ...
Typescript初学习(一)
typescript中为了使编写的代码更规范,更有利于维护,增加了类型检验,写ts代码必须指定类型typescript数据类型
布尔类型(boolean)
数字类型(number)
字符串类型(string)
数组类型(Array)
元组类型(tuple)
枚举类型(enum)
任意类型(any)
null和undefined
void类型
never类型
布尔类型
12345var flag: boolean = true;// flag=123 错误写法flag = falseconsole.log(flag)
//数字类型
12var num: number = 123;console.log(num);
字符串类型1234var str: string = 'this is ts';str = "lalala";console.log(str);
数组类型12345678910111213//数组 ts中定义数组有两种方式//1.第一种// var arr=[' ...
Typescript初学习(三)
Typescript的类复习ES5中的类1.最简单的类1234567function Person() { this.name = '张三'; this.age = 20;}var p = new Person();console.log(p.name);
2.构造函数和原型链里面增加方法1234567891011121314function Person() { this.name = '张三'; /*属性*/ this.age = 20; this.run = function () { /*实例方法*/ alert(this.name + "在运动") }}原型链上上面的属性会被多个实例共享 构造函数不会 Person.prototype.sex="男"; Person.prototype.work=function () { alert(th ...
Typescript初学习(二)
函数3.1 函数的定义12345678910111213141516171819202122232425262728293031323334353637383940414243//es5定义函数的方法//函数声明法function run(){ return 'run';}//匿名函数var run2 = function () { return 'run2';}//ts中定义函数的方法//函数声明法function fun1(): string { return 'run';}//匿名函数var fun2 = function (): number { return 123;}fun2(); //调用方法//ts中定义方法传参function getInfo(name: string, age: number): string { return `${name} --- ${ ...
Typescript初学习(四)
Typescript接口
数据结构(二)
第2章 线性表
SpringBoot学习(二)
自动装配原理
pom.xml
spring-boot-dependencies:核心依赖在父工程中;
12345<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.6.3</version></parent>
我们在写或者引入一些springboot依赖时,不需要指定版本,就是因为有这些版本仓库
启动器
123456789101112131415<!--启动器--> <dependency> <!--默认启动器--> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter< ...