
js学习笔记
文章平均质量分 85
chujinmaolu
这个作者很懒,什么都没留下…
展开
-
四十一----react基础
React 是⼀个声明式,⾼效且灵活的⽤于构建⽤户界⾯的 JavaScript 库。使⽤ React 可以将⼀ 些简短、独⽴的代码⽚段组合成复杂的 UI 界⾯,这些代码⽚段被称作“组件”。ui = render (data) -> 单向数据流react是基于mvc模型的框架,vue是基于mvvm模型的框架。原创 2022-12-01 22:20:18 · 52 阅读 · 0 评论 -
二十七----浏览器存储
所谓的跨页面使用指的是:你在浏览器里打开了两个窗口,一个访问的是。cooick产生的背景是因为,HTTP是无状态协议,在没有cooick之前,HTTP的请求头是没有任何状态标记的,这就导致一个问题,一、同源策略是浏览器的一个安全策略,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。发送的时候,也不会携带到的请求头中去,防止一些安全问题的产生,因不会放到请求头中,因此也减少了不必要的流量开销。(会话存储)这两个,这两个相比于cookie,在可存储的大小上,有了质的提升,可以存储4M左右的数据。原创 2022-09-18 17:51:14 · 183 阅读 · 1 评论 -
node升版本问题
但我遇到的问题,没有升级vue-cli,因为当时自动升级至cli5,中间还报错,干脆不升级了,直接卸载node-sass,sass-loader,然后按着这篇博文安装还是报错,Syntax Error: ValidationError: Invalid options object. Sass Loader has been initialized…,百度说时sass-loader版本太高或过低的问题,那么我就一直降又降回原来的7.1.0版本,好了。开始报和播主说的一样的错了,跟着博主说的改掉就好了。原创 2022-08-19 17:28:42 · 550 阅读 · 0 评论 -
十二--vue.js基础
一:vue.js简介vue是一个响应式的前段视图层框架。响应式:我们在编写模版代码时,仅需关注数据变化即可,数据变化,ui即会变化视图层:类似我们接触的其他前端模版,仅仅是ui层面的内容框架:库提供由其父代码调用的功能,而框架定义整个应用程序的设计。开发人员不调用框架,而是调用库,相反,框架以某种特定方式调用和使用代码。1、vue.js的简单demo例子1:<div id='app'><p>Message is: {{ message }}</p><原创 2022-01-07 20:46:37 · 587 阅读 · 1 评论 -
十一--nodejs网络及部署(二)
一、httpHTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信原创 2021-12-31 17:40:40 · 217 阅读 · 0 评论 -
十一--nodejs网络(一)
一:网络OSI七层模型第七层:应用层,为操作系统或网络应用程序提供访问网络服务的接口。应用层协议的代表包括: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。第六层:表示层,把数据转换为接受者能够兼容并且适合传输的内容,比如数据加密,压缩,格式转换等。第五层:会话层,负责数据传输中设置和维持网络设备之间的通信连接。管理主机之间的会话进程,还可以利用在数据中插入校验点来实现数据的同步。第四层:传输层,把传输表头加至数据形成数据包,完成端到端的数据传输。传输表头包含了协议等信原创 2021-12-29 21:01:57 · 1188 阅读 · 0 评论 -
十--nodejs原理(事件循环)
一、事件循环什么是事件循环?事件循环使得nodejs可以通过将操作转移到系统内核中来执行非阻塞I/O操作(尽管javascripts是单线程的)。由于大多数现代内核是多线程的,因此它们可以处理在后台执行的多个操作。当这些操作之一完成时,内核会告诉nodejs,以便可以将适度的回调添加到轮询队列中以最终执行。通俗的说在nodejs内部使用了第三方库libuv,nodejs会把IO,文件读取等异步操作交由他处理,而nodejs主线程可以继续去处理其他的事情。libuv会开启不同的线程去处理这些延时操作,处原创 2021-12-26 19:16:19 · 942 阅读 · 0 评论 -
十--nodejs原理(events and global)
一、events模块events模块是node的核心模块之一,几乎所有常用的node模块都继承了events模块,比如http、fs等。1、同个事件可以设置多个事件监听器var EventEmitter = require('events');class Man extends EventEmitter{}var man = new Man();man.on('wakeup',function(){ console.log('man has woken up');});man.on('w原创 2021-12-24 22:10:01 · 158 阅读 · 0 评论 -
十--nodejs原理(stream)
一、streamshell通过管道|连接各部分,其输入输出的规范是文本流,在Node.js中,内置的Stream模块也实现了类似功能,各部分通过.pipe()连接。Stream提供了以下四种类型的流:var Stream = require('stream');var Readable = Stream.Readable;var Writable = Stream.Writable;var Duplex = Stream.Duplexvar Transform = Stream.Transfo原创 2021-12-23 22:38:44 · 338 阅读 · 0 评论 -
十--nodejs原理(buffer)
1、Buffer1)Arraybuffer对象是用表示通用的,固定长度的二进制数据缓冲区。Arraybuffer不能直接操作,而是要通过类型数组对象或DataView对象来操作,它们会将缓冲区数据表示为特定格式的数据,并通过这类格式来读写缓冲区内容,可以理解为一块内存,具体存什么需要其他声明。var buffer = new ArrayBuffer(8);//声明一个长度为8的缓冲区域,8位为一个字节var view = new Int16Array(buffer);//以16位整数数组划分字节长度为原创 2021-12-22 21:19:01 · 1426 阅读 · 0 评论 -
九--nodejs基础
1、nodejs是什么?nodejs是一个服务端运行环境,它是基于js语言规范基础上,封装了一些服务端的运行时对象,让我们能实现非常多的业务功能。如果我们只使用js的话,只能做一些简单的逻辑运算,nodejs就是基于js语法增加与操作系统之间的交互2、node安装与版本切换1)node安装可以通过官网直接下载二进制安装文件或者通过源码自行编译安装。2)nodejs版本切换经常nvm(node version manager)和n工具来实现。它提供了⼀种直接通过shell 执⾏的⽅式来进⾏安装。简单原创 2021-12-21 22:45:57 · 362 阅读 · 0 评论 -
八--JS作用域、this和原型链(二)
1、为什么要面向对象?面向对象(OOP),对象就是一个容器,一般是类,它是面向对象编程的最小单元,面向对象编程的优点是逻辑迁移灵活,代码可复用性高,高度模块化。对象是一个容器,里边封装了方法和属性。方法为对象行为,属性为对象状态//简单对象const course = { teacher: '云隐', leader: '黄小杨', startCourse: function(name) { return `开始${name}课`; }}//函数对象funct原创 2021-12-11 17:35:10 · 484 阅读 · 1 评论 -
八--JS作用域、this和原型链(一)
1、JS作用域及作用域链一个函数里面有函数,最外层的函数的生命周期是最久的,它们的地址和值就是栈的形式,先进后出。它们的变量作用域查找,是从内向外的一个方式查找。 let a = 'global'; console.log(a); function course() { let b = 'zhuawa'; console.log(b); session(); function session() { let c = 'this';原创 2021-12-10 21:27:13 · 534 阅读 · 1 评论 -
七--js基础
当valueof和toString同时存在时,不管一元加号还是字符串拼接的加号,都会先对象转为基本类型,所以会先找valueOf(),若valueof返回基本类型,结果就时valueof的值,若返回对象或没有,就找toString(),若toString返回对象或没有,则报错。添加修改原型链上的属性会影响已创建或未创建的实例,给原型对象重新赋值新的对象,不会影响已经创建的实例的原型链,因为已创建的实例依旧指向原来的地址,新的实例才会指向新的原型对象指向的地址。bind比apply,call更高效,优先。原创 2021-12-06 20:10:43 · 284 阅读 · 0 评论 -
六----es6详解及实战二
1、解构赋值const data = {name:'1',teacher:'2',}const {name,teacher}=data;//解构赋值,需要key一一对应const data1 = [1,2,3];const [a,b,c] = data1;当有多个引用使用别名const data = {name:'1',teacher:'2',class:{name:'er',title:'duck'}}const {name:teachername,teacher,原创 2021-11-17 23:22:44 · 133 阅读 · 0 评论 -
六----es6详解及实战一
一、常用es6const,let,箭头函数,解构赋值,扩展运算符…,class,promise,async:await,generator产生器,symbol数据类型,set,map等等。1、consta、定义常量,无法改变,但是对于引用类型的数据是可以改变的;b、不允许重复声明,会报错;c、有块级作用域的概念d、无变量提升;e、有暂时性死区问题es5定义常量:Object.defineProperty(window,'arg2'{value:1,writeable:false})es原创 2021-11-16 22:30:11 · 324 阅读 · 0 评论 -
四----ts了解
一、为什么要用ts?1)ts是js的加强版,它给js增加了可选的静态类型和面向对象编程,它的功能比js只多不少。2)ts是面向对象的语言,它包含类和接口的概念;3)ts在开发时就能给出编译错误,而js需要运行时才能发现;4)ts作为强类型语言,明确数据类型,代码可读性比较强;5)ts中有很多很方便的特性比如可选链。二、1、基础类型:number,string,array,boolean,object定义a为number类型,且给它赋值1。let A :number = 1;2、枚举 e原创 2021-08-22 21:51:56 · 4343 阅读 · 0 评论 -
三----浏览器相关
一、浏览器事件1、浏览器事件模型分为三步,分别是捕获阶段、目标阶段,冒泡阶段,它们之间的关系是:捕获–>目标–>冒泡。Window.addEventListener(‘click’,function(){},true)//这是捕获阶段进行触发Window.addEventListener(‘click’,function(){},false)//这是冒泡阶段进行触发例如:一个结构html–>body–>div–>span;这时点击了div区域,事件触发阶段为html的捕原创 2021-08-19 16:38:19 · 114 阅读 · 0 评论 -
二----js模块化理解
一、模块化主要是为了更好的管理代码,将复杂问题拆分成子问题,关注分离,方便替换,复用,拓展,多人合作。二、闭包是模块化机制的基石。模块化机制解决了命名污染,全局污染,变量冲突等基础问题内聚且私有,变量不会被外界污染怎么引入其他模块,怎么暴露给其他模块引用依赖顺序问题循环引用,边界等问题三、目前的几种模块化规范amd,cmd,commonjs,esm等。1、amdamd代表是ReqiureJS,它适用于浏览器端加载,是异步的,但是它是依赖前置即依赖一股脑先加载。使用:define('a原创 2021-08-09 16:28:19 · 221 阅读 · 0 评论 -
一----promise理解
听过路白大大的课之后对promise有一些理解以此记录:1、promise A+规范要求有三个状态,分别是pending,fulfilled,rejected。promise实例初始化时是pending状态。实例初始化时会把new promise传入的方法马上执行。class myPromise{ resolveList = []; rejectList = []; _status = null; constructor(fn){ this.status = 'pending'; this.原创 2021-08-08 22:57:23 · 197 阅读 · 1 评论