nodejs的简单复习
创始人
2025-05-28 11:25:01

定时器

  • setTimeout( )是属于 window 的 method, 但我们都是略去 window 这顶层物件名称, 这是用来设定一个时间, 时间到了, 就会执行一个指定的 method。

setTimeout()方法设置一个定时器,该定时器在定时器到期后执行一个函数或指定的一段代码

setTimeout(function(arg1,arg2,arg3){console.log(arg1*arg2-arg3)    // -1},2000,1,2,3
) 


 

  • 间隔性定时器setInterval () : 每隔一定的时间就触发一次  

计时器setInterval():在执行时,从载入页面后每隔指定的时间执行代码。

  • 创建延迟定时器
window.setTimeout(函数类型,延迟时间)var timer1=window.setTimeout(function (){console.log("你好啊!!!");
},3000);

  • 清除延迟定时器
window.clearTimeout(定时器名称)function func(){//清除延时器window.clearTimeout(timer1);
}

  •  创建循环定时器
 setInterval(function(){console.log(111);},1000)  //每隔一秒钟打印出111

  • 重置循环定时器
function reset1(){//重置定时器,重新给定参数,清除定时器,重新创建定时器i=0;window.clearInterval(timer);timer=window.setInterval(func,2000);
}


变量的命名规范

  • 首字母必须是字母、下划线(-)或者美元符号($)。
  • 其他字母可以是下划线(_)、美元符号($)、字母或者数字
  •  一般采用驼峰法:一个单词所有小写,多个单词从第2个单词开始首字母大写。。
  •  变量名是区分大小写的,不能是关键字或保留字。

字符串定义

  • 判断一个字符串在不在某个字符串里面
     let index1 = str.indexOf('宇宙')console.log(index1);//0
  • 截取字符串

      let str2 = str.substr(7,2)console.log(str2); // 江西
  • 修改字符串
  let str3 = str.replace("宇宙","互联网") console.log(str3); // 互联网的中心——江西软件职业技术大学
  • 分割字符串
let str ='1-2-3-4-5!
let str1 = str.split('-!
console.log(str); //1-2-3-4-5
console.log(str1); //['1','2,3 ,4',5']
  • 大小写转换
console.log('ABCDEFG'.toLowerCase()); //abcdefg
console.log('abcdefg'.toUpperCase()); //ABCDEFG


数组的增删改查

1.数组新增

数组新增数组名.push('元素'):添加到末尾。

 array.push('柯震东')console.log(array); //[柯震东']数组名.unshift('元素'):添加到开头。array.unshift('翟天临')console.log(array); //['翟天临’]

 2.数组删除

数组名.pop( ): 删除最后一个元素

 array.pop()console.log(array);数组名.shift( ): 删除第一个元素array.shift()console.log(array);

 3.数组删除/添加指定元素

数组名.splice(start,deleteCount,add)array.splice(3,2)console.log(array);

ES6set数据结构

 Set函数可以接收一个数组作为参数,用来初始化。const s = new Set([1,2,3,3,4,4])console.log(s);   //Set(4) (1,2,3,4)console.log(s.size);   //4利用Set进行数组去重let arr = [1,22,33,33,44,44]
let set = new Set(arr)
console.log(set); //Set(4) {1,22,33,44] 

 HTTP请求方法

GET请求: 用来获取数据,不对服务器的数据做任何的修改、新增、删除等操作。

POST请求:数据发送到服务器以创建或更新资源,侧重于更新数据.

PUT请求: 数据发送到服务器以创建或更新资源,侧重于创建数据。

DELETE请求:删除指定的资源。

HEAD请求: HEAD方法与GET方法相同,是从服务器获取信息。服务器不会返回请求的实体数据,只会传回相应头可以用在很多并不真正需要资源的场合,避免传输body数据的浪费。

PATCH(布丁)请求: 用于上传数据并更新“部分”资源。

HTTP状态码

1开头的状态码 (信息类)
   100,接收的请求正在处理
 2开头的状态码 (成功类)
   200,服务器已成功处理了请求。
 3开头的状态码 (重定向)
   301,永久性重定向。302,临时重定向。
4开头的状态码 (客户端错误)
   400,错误请求,服务器不理解请求的语法。403,服务器拒绝请求
 5开头的状态码 (服务器错误)
   500,服务器内部错误,无法完成请求。503,服务器停机维护,无法处理请求
 

AjAX发送get请求

AjAX发送get请求,如何传递参数?

拼接在url地址上

格式: url地址?key=value
url地?key1=value2&key2=value2

实现AJAX的基本步骤

要完整实现一个AJAX异步调用和局部刷新,通常需要以下几个步骤:

  1. 创建XMLHttpRequest对象,即创建一个异步调用对象.
  2. 创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.
  3. 设置响应HTTP请求状态变化的函数.
  4. 发送HTTP请求.
  5. 获取异步调用返回的数据.
  6. 使用JavaScript和DOM实现局部刷新.
     

1、创建XMLHttpRequest对象 

let xhr = new XMLHttpRequest();

2、创建HTTP请求

    创建HTTP请求可以使用XMLHttpRequest对象的open()方法,其语法代码如下所示:

XMLHttpRequest.open(method,URL,flag,name,password);

代码中的参数解释如下所示:

  • method:该参数用于指定HTTP的请求方法,一共有get、post、head、put、delete五种方法,常用的方法为get和post。
  • URL:该参数用于指定HTTP请求的URL地址,可以是绝对URL,也可以是相对URL。
  • flag:该参数为可选,参数值为布尔型。该参数用于指定是否使用异步方式。true表示异步、false表示同步,默认为true。
  • name:该参数为可选参数,用于输入用户名。如果服务器需要验证,则必须使用该参数。
  • password:该参数为可选,用于输入密码。若服务器需要验证,则必须使用该参数。

3、设置响应HTTP请求状态变化的函数

     创建完HTTP请求之后,应该就可以将HTTP请求发送给Web服务器了。然而,发送HTTP请求的目的是为了接收从服务器中返回的数据。从创建XMLHttpRequest对象开始,到发送数据、接收数据、XMLHttpRequest对象一共会经历以下5中状态。 

  1. 未初始化状态。在创建完XMLHttpRequest对象时,该对象处于未初始化状态,此时XMLHttpRequest对象的readyState属性值为0。
  2. 初始化状态。在创建完XMLHttpRequest对象后使用open()方法创建了HTTP请求时,该对象处于初始化状态。此时XMLHttpRequest对象的readyState属性值为1。
  3. 发送数据状态。在初始化XMLHttpRequest对象后,使用send()方法发送数据时,该对象处于发送数据状态,此时XMLHttpRequest对象的readyState属性值为2。
  4. 接收数据状态。Web服务器接收完数据并进行处理完毕之后,向客户端传送返回的结果。此时,XMLHttpRequest对象处于接收数据状态,XMLHttpRequest对象的readyState属性值为3。
  5. 完成状态。XMLHttpRequest对象接收数据完毕后,进入完成状态,此时XMLHttpRequest对象的readyState属性值为4。此时接收完毕后的数据存入在客户端计算机的内存中,可以使用responseText属性或responseXml属性来获取数据。
     
xhr.onload = function()(
?num=10
// console.log(xhr.response);
// console.log(xhr.response);
let obj = JSON.parse(xhr.response.
console.log(obj);
}

 4、设置获取服务器返回数据的语句

// 4.调用send方法
xhr.send( );

ajax发生post请求:


1.创建请求对象。
2.调用open方法,设置请求方式和请求地址
3.设置请求头。
4.设置请求后的回调函数
5.调用send()方法。

1.实例化ajax对象
let xhr = new XMLHttpRequest();
// 2.设置请求方法和地址
//(用户注册)
xhr.open( 'post','https://autumnfish.cn/api/user/register')
// 3.设置请求头 (post请求才需要设置)
xhr.setRequestHeader("Content-type","application/x-www-form-urlenco
// 4.注册回调函数
xhr.onload = function(){
console.log(xhr.responseText);
5.发送请求:参数格式key = value
hr.send('username= 小智')

 map遍历数组

  • map的使用方法和forEach类似。
  • 和forEach不同的是,map有返回值

基础写法:

var num = [1,2,3,4,5,6];
//把原数组的内容都乘以2,然后返回给一个新数组
var _num = num.map(item=>{return item *2
})
console.log(_num);		//[2, 4, 6, 8, 10, 12]

 详细写法

var num = [1,2,3,4,5,6];
var _num = num.map((item,index,arr)=>{console.log(item,index,arr);})

参数:

item:【必填】数组中正在处理的当前元素。
index:【可选】数组中正在处理的当前元素的索引。
arr:【可选】方法被调用的数组。也就是当前元素属于的数组对象。

filter 过滤器

filter应用场景: 用于筛选数组中满足条件的元素,返回筛选后的新数组
例: 找出数组中的偶数;求数组中大于10的所有元素。
语法:

数组.filter(function(value,index,arr){return 筛选条件})


forEach和map方法有什么区别?

  • forEach()方法不会返回执行结果,也就是说forEach()方法会修改原来的数组,但是没有返回值
  • map()方法得到一个新的数组,是map方法修改数组后返回回来的新数组

some()方法 

some 用于判断数组中是否存在满足条件的元素

some函数返回一个布尔类型值

let arr = [23,31,60,88,0,90,108,260]
let arr1 = arr.some((item,index)return item < @
1;
console.log(arr1);

every方法

every数组方法的作用

判断数组中是否所有元素都满足条件

语法:array.every( function ( item, index,arr) {} )

第一个参数: item,必须,当前元素的值

第二个参数 : index,可选,当前元素在数组中的索引值

第三个参数 : arr,当前元素所处的数组对象

every方法特点

(1)循环次数 !== 数组长度

(2)函数内部的return

return true : 循环继续 当前元素满足条件,继续判断,如果循环执行完毕还是true,则every的返回值就是true

return false : 循环结束,当前元素不满足条件,every的返回值也是false

(3)every方法的返回值

return true : 全部元素都满足条件

return false : 有元素不满足条件
 

注意点:

(1)every()方法不会对空数组进行检测

(2)every()方法不会改变原始数组

// 需求: 判断数组中没有负数
let arr = [23,31,60,88,-50,90,108,260];
let arr1 = arr.every((item)
return item > 0;
1;console.log(arr1); //false

数组findIndex()方法

findIndex()方法 返回传入一个测试条件(函数)符合条件的数组第一个元素位置

findIndex()方法为数组中的每个元素都调用一次函数执行:

            当数组中的元素在测试条件时返回true时,findIndex()返回符合条件的元素的索引位置,

之后的值不会再调用执行函数

            如果没有符合条件的元素返回-1
 

参数

  • currentValue    必需,当前元素
  • index   可选   当前元素的索引
  • arr   可选   当前元素所属的数组对象
  • thisValue   可选  传递给函数的值一般用this值。如果这个参数为空,undefined会传递给this值
let arr = [
{ name:张三 ,age:20
name:'李四',age:30name: 王五',age:25
name:'赵六 ,age:33
name:'小七',age:10
// 数组findIndex方法: 获取符合条件的第一个元素位置(下标)
// 需求: 查找arr1中第一个未成年在什么位置let res = arr.findIndex( (item,index)
return item.age < 18;
})
console.log(res); //4

 数组reduce()方法

语法:

arr.reduce(callback,[initialValue])

reduce 为数组中的每一个元素依次执行,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组。

callback (执行数组中每个值的函数,包含四个参数)1、previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))2、currentValue (数组中当前被处理的元素)3、index (当前元素在数组中的索引)4、array (调用 reduce 的数组)initialValue (作为第一次调用 callback 的第一个参数。)

Math对象

1.圆周率: Math.PIconsole.og(Math.PI); //3.1415926535897932.绝对值: Math.abs()console.log(Math.abs(-2)); //23.找最大值/最小值: Math.max() Math.min()// console.log(Math.max(1,2,3)); console.log(Math.min(1,2,3)); //14.0-1随机小数: Math.random
console.log(Math.random());5.幂运算: Math.pow(x,y)
console.log(Math.pow(2,3)); //8
6.向上取整/向下取整: Math.ceil() 
Math.floorconsole.log(Math.ceil(1.2)); //2
console.log(Math.ceil(-1.2)); //-1
console.log(Math.floor(1.8)); //1
console.log(Math.floor(-1.8)); //-2

cookie

使用场景:

  • 记住密码,下次自动登录。
  • 记录用户浏览数据,进行商品(广告)推荐

特点:

  • cookie保存在浏览器端。
  • 单个cookie保存的数据不能超过4KB.
  • cookie中的数据是以域名的形式进行区分的。
  • cookie中的数据是有过期时间的,超过时间数据会被浏览器自动删除5: cookie中的数据会随着请求被自动发送到服务器端。

fs文件系统模块

具体看(92条消息) nodejs的内置模块-CSDN博客

相关内容

热门资讯

【C++初阶】10 .习题1 2022-09-16_命名空间 1. 命名空间的概念 下面关于C++命名空间描述错...
基于bearpi的智能小车--... 基于bearpi的智能小车--Qt上位机设计 前言一、界面原型1.主界面2.网络配置子窗口模块 二、...
三、Java核心技术(进阶)-... 一、概念 国际化编程:通过一套软件适配多个语言包。 二、相关函数 java.util....
水声功率放大器与宽带匹配技术研...   作为声呐设备重要的一份子,水声信号发射机承担着非常重要的作用。水声信号发射机其实是...
【C++】12.继承 1.引入继承 学生管理系统 学生 老师 社管阿姨 保安大叔 4个类 4个类有很多重复的东西...
LINUX中atd和crond... 一、atd与crond的区别1、运行方式不同,at只运行一次,而cron...
C++数据结构 —— 哈希表、... 目录 1.哈希概念 1.1哈希函数 1.2哈希冲突 2.闭散列实现 3.开散列实现 4.容器的封装 ...
Streamlit 学习笔记1 Streamlit 学习笔记1 文章目录Streamlit 学习笔记1首先 安利下streamlit...
基层区域应用平台为目标开发的基... 系统特点:  JAVA语言开发,MYSQL数据库,B/S架构 基于云计算...
数智链接,新一代校园招聘解决方... 疫情3年市场巨变,00后新生代初登上求职舞台,中和作用下,...
面试官:rem和vw有什么区别 "rem" 和 "vw"的区别 "rem" 和 "vw" 都是用于网页设计的CSS单位。 "rem"...
Pytest自动化测试框架完美... 简介 Allure Framework是一种灵活的、轻量级、多语言测试报告工具。 不仅可以以简洁的网...
华为nat配置实验:内网能够访... 一 需求分析1.1 需求 公司A在北京,公司B在上海,本次实验仅仅模拟局...
事务日志与 两阶段提交 文章目录 Redo Logredo的优点redo的组成redo的整体流程不同刷盘策略演示 Undo ...
【目标跟踪算法】Strong ... 1. Strong SORT算法的背景和概述 Strong SORT算法基于经典的Deep SORT...
Lock接口——JUC随记2 1、synchronized 1.1、synchronized的三种应用方式 一. 修饰实例方法&#...
IO流之字符流 文章目录1. 字符流概述2. 编码表3. 编码和解码4. 写数据的方式5. 读数据的方式6. 转换流...
C语言的灵魂---指针(基础) C语言灵魂指针1.什么是指针?2.指针的大小3.指针的分类3.1比较常规的指针类型3....
【华为OD机试真题JAVA】最... 标题:最优策略组合下的总的系统消耗资源数问题 | 时间限制:1秒 | 内存限制:262144K | ...
MATLAB | 给热图整点花... 前段时间写的特殊热图绘制函数迎来大更新,基础使用教程可以看看这一篇: h...
小知识·BitTorrent ... BitTorrent 简介从 P2P 说起经常在网上飙车的老司机应该都知道 BT 下载,...
Redis和Memcached...         对于大多数的系统服务来说,缓存是提高性能和可伸缩性的关键。一般情况下我...
[牛客算法总结]:重建二叉树    标签: 二叉树、DFS、先序遍历、中序遍历、递归   题目: 给定...
VS Code 将推出更多 A... 大家好,欢迎来到我们的二月更新!我们将为您带来与 JUnit 5 并行测...
为什么要推荐使用pnpm 在谈起pnpm时先来聊一聊之前的npm和yarn有什么存在的问题  npm2 在npm3之前我们安装...
多线程开发 文章目录多线程开发1. Thread创建多线程2. ThreadPoolExecutor创建进程池a...
闪存系统性能优化方向?NAND... Hello 大家好, 我是元存储~ 目录 前言 1. 提升效果 2. Cache Re...
关于复杂链表的复制问题(力扣) 上面我们已经说了两个关于链表的实现了,其中一个是单链表,另外一个是双向带...
STM32学习(二) 常用开发工具简介 安装仿真器驱动 DAP仿真器免驱ST LINK仿真器驱动安装方法:...
K8s配置jenkins Ma... 1、k8s安装jenkins 以阿里云的ACK为例 A、在有状态点击镜像创建,配置自己...