一、定时器

setTimeout:定时执行,设置一个事件,等待事件到达的时候只执行一次,但是执行以后定时器还在,只是没有运行。

setIntevral:循环执行,设置一个时间间隔,每个一段时间都会执行一次这个方法,直到这个定时器被销毁

// // 案例:

// setTimeout(function(){(123)

// console.log(123);

// // },2000)

// setInterval(function()(

// console.log( 'abc');

// },2000)

//1.对以下代码的描述中,正确的是(B)

//A.回调函数会在延迟2s后执行一次

//B.回调阿含糊会以2s为间隔重复执行

//C.回调函数会在延迟2mins后执行一次

//D.回调函数会重复执行2000次

// 2.执行下面的代码,结果的输出顺序是 (1,3,2)

console.log(1);

setTimeout(function(){

console.log(2);

},0)

console.log(3);

// 解析: setTimeout指定的代码,必须等到本次执行的所有同步代码都执行完,才会执行

二、变量

知识点:

变量的名称须遵循如下3条规则

1.首字母必须是字母(大小写均可) 、下划线(_),或者美元符号($)(数字开头,非法.)

2.余下的字符可以是下划线、美元符号、任意字母或者数字字符。

3.变量名不能是关键字(keyword) 或者保留字。

4.驼峰命名 myName

// 题目:

//以下可以作为变量名使用的是 ( B )

//A.9name

// B.$strick9

// C.p wstrick

// D.delete(关键字)

三、字符串

知识点:

1.判断一个字符在不在某个字符串里面

// let str =蜜雪冰城甜蜜蜜!

// let index1 = str.index0f('甜蜜蜜')

// console.log(index1); //4

2.截取字符串 (第一个参数: 从哪个下标开始截取;第二个参数:截取的长度)

// let str1 = str.substr(4,2)

// console.log(str1);

3.修改字符串 (第一个参数: 要修改的字符串;第二个参数: 修改后的字符串)

// let str2 = str.replace('蜜雪冰城',奈雪的茶')

// console.log(str2);

4.分割字符串

a.直接调用不传任何值,会直接将字符串转化成数组

// let str1 = 'i love you'

// console.log(str1.split()); //['i love you']

b.如果已不存在的字符串(或者正则匹配不到的字符串) 进行分割,也会直接将字符串转为数组。

// let str2 = i love you'

// console.log(str2.split('M')); //['i love you']

c.按照空格字符串 (·)的形式进行分割,每个字符都分割。

// let str3 = 'i love you!// console.log(str3.split(i')); //['i'.'', 'o' , 'v', 'e',' '.x','k']// d.传入并原数组有分隔符的情况下,找到分隔符,将其从字符串删除,并将字符串数组返回,// let str4 = 'i love cxk'

// console.log(str4.split(' ')); //['i', love', 'you']

5.大小写转换

// console.log('ABCDEFG'.toLowerCase()); //abcdefg

// console.log('abcdefg' .toUpperCase()); //ABCDEFG

四、数组

// let array = ['wyf']

// console.log(array);

知识点:

1.数组名push(元素) 添加元素到数组末尾

// array.push(柯震东')

// console.log(array);

2.数组名.shift() 删除第一个元素

// array.shift(),

//console.log(array);

3.数组转化为字符串

// let a = ['1','2','3']// let b = a.join('')

// console.log(a); //['1',2','3']

// console.log(b); // 1234

// console.log(typeof(b)); // srting

// 题目:

// 1.下列选项不是Array对象 (即数组) 的方法是 ( C )

// A.push()

// B.shift()

// C.split()

// D.join()

// 2.执行下面的代码,在控制台输出的Length属性为(5)

// var arr = []

// arr[3] = 3// arr.push(4)

// console.log(arr.length);

//3.执行下面的代码,在控制台输出的Length属性为( 5 )

// var arr = [ ];

// arr[4] = 3;

// console.log(arr.length);

五.数组方法

知识点:

1.map:利用某种规则映射得到一个新数组。(遍历每一个元素,并对每一个元素做相应处理,返回一个新数组)

回调函数执行次数等于数组长度,map函数返回的新数组长度等于原数组长度 ,回调函数一定要return

注意点:

// a.回调函数执行次数 == 数组长度(数组中有几个元素,回调函数就会执行几次)// b.map函数返回的新数组长度 == 原数组长度

// c.回调函数中一定要return,返回的是当前遍历的元素值

// (如果不return,新数组中的每一个元素都变成了undefined)

语法: (元素,下标) => {return 新元素]

let arr = [23,31,60,88,108,206];

// (1)需求: 数组中每一个元素+1

let arr1 = arr.map((value,index) => {

return value + 1; //让每一个元素的值+1

})

console.log(arr1); //[24,32,61,89,109,207]

1.filter

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

语法:

// a.数组.filter(function(value,index,arr){

// return

// 筛选条件

// })

注意点:

// a.回调函数执行次数 == 数组长度

// b.filter函数返回的新数组长度 ! = 原数组长度

let arr = [3,31,60,-88,90,-108,260]

// (1)需求: 求数组中大于10的所有元素

let nArr = arr.filter(function(value){

// 筛选条件

return value > 10

})

// nArr里保存的是所有满足条件的元素

console.log(nArr); //[31,60,90,260]

2.for Each

forEach和map方法有什么区别?

forEach()方法不会返回执行结果,也就是说forEach()方法会修改原来的数组,但是没有返回值。

map()方法得到一个新的数组,是map方法修改数组后返回回来的新数组。

forEach应用场景: 用于遍历数组,相当于for循环另一种写法

语法: 数组.forEach( function(value,index,arr)[ // 算法 })

forEach必须提供一个参数

// a.value:每次遍历到的数组元素

// b.index:每次遍历到的数组的下标

// c.arr:数组

// d.forEach

let arr = [23,31,60,88,90,108,260];

// 需求1:对数组进行累加

let sum = 0

arr.forEach(function(value){

sum += value

})

console.log(sum); //660

// 3.注意点:

// a.回调函数执行次数 == 数组长度(数组中有多少元素,回调函数就会执行几次)

// b.forEach函数没有返回值

// c.回调函数不需要return(就算手动ruturn,也不会结束循环)

3.some

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

注意点:

// a.回调函数执行次数 != 数组长度

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

// c.回调函数返回布尔类型值用于结束遍历return true; 遍历结束,且some函数返回值为true。return false; 遍历继续,且some函数返回值为true

// (1)需求: 判断数组中有没有负数

let arr = [23,31,60,88,0,90,108,260]

let arr1 = arr.some((item,index) =>{

return item <

});

console.log(arr1);

4.every

every应用场景: 用于判断数组中是否所有元素都满足条件

注意点:

// a.every函数返回一个布尔类型值

// 需求: 判断数组中没有负数

let arr = [23,31,60,88,-50,90,108,260];

let arrl = arr.every((item) => {

return item > 0 ;

);

console.log(arr1); //false

5.findIndex

数组findIndex方法:

// a.作用: 获取符合条件的第一个元素位置(下标)。

// b.语法: arr.findIndex((item,index) => (return true/false})//返回值: 符合则返回元素下标,不符合则返回-1。//c.应用场景: 适合于数组中元素为对象类型,比传统for循环要高效

let arr = [

( name:'张三',age:20 },

[ name:'李四',age:30 },

( name:'王五',age:25 },

{ name:'赵六',age:33 },

( name:'小七',age:10 ],

]

// 数组findIndex方法: 获取符合条件的第一个元素位置(下标)

// 需求: 查找arr1中第一个未成年在什么位置

let res = arr.findIndex((item,index) => {

return item.age < 18;

})

console.log(res); //4

6.reduce

数组reduce方法:

// a.作用: 遍历数组元素,为每个数组执行一次回调函数

// b.语法: arr.reduce( (sum,value) =>[ return sum + value })

/返回值: 最终sum值

// c.应用场景: 数组求和/平均数/最大值/最小值

// d.注意点: 最好给一个初始值,避免空数组报错

let arr1 = [20,55,80,70,92,35];

// sum:初始值,默认为数组第一个元素。

// value: 数组的每一个元素,默认为数组第二个元素。

let res1 = arr1.reduce((sum,value) => ! {

//这里必须要return,相当于把本次计算的结果赋值给下一次的sum: sum = sum + valuereturn sum + value;

return sum + value;

})

console.log(res1); //352

题目:

// 1.以下代码的打印结果是 (false)

// let arr = [23,31,60,88,-50,90,108];

// let arr1 = arr.every((item) => {

// return item > 0;

// 3);

// console.log(arr1);

// 2.以下代码的打印结果是 ( 352 )

// let arr1 = [20,55,80,70,92,35]

// let res1 = arr1.reduce((sum,value) => {

// return sum + value

// })

// console.log(res1);

五.请求方式

知识点:

GET请求: 可以理解为“取”的意思。用来获取数据,不对服务器的数据做任何的修改、新增、删除等操作。

POST请求: 可以理解为“贴”的意思。数据发送到服务器以创建或更新资源,侧重于更新数据PUT请求: 可以理解为“放”的意思。数据发送到服务器以创建或更新资源,侧重于创建数据。

PUT请求:可以理解为“放”的意思,数据发送到服务器创建或更新资源,侧重于创建数据。

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

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

比如,想要检查一个文件是否存在,只要发个信息HEAD请求就可以了,没有必要用GET把整个文件都取下来PATCH(布丁)请求: 用于上传数据并更新“部分”资源。

题目:

1.在HTTP中,不可用的请求方法是 ( A )

A.RETURN

B.POST

C.HEAD

D.DELETE

2.表示从服务器获取资源的请求方式是 ( A )

A.GET

B.POST

C.PUT

D.PATCH

六、AJAX

<body>

<!-- AJAX发送post请求

1.创建请求对象,实例化一个ajax对象

2.调用open方法,设置请求方式和地址

3.设置请求头

(固定语法:xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded")

4.设置请求成功后的回调函数

5.使用send() 方法去发生ajax请求

-->

<!-- get和post请求传递参数的写法是不一样的

在get请求中,把参数直接拼接在url地址后,不安全 -->

<script>

// 1.创建请求对象,实例化一个ajax对象

let xhr = new XMLHttpRequest();

// 2.调用open方法,设置请求方式和地址

xhr.open('post','https://autumnfish.cn/api/user/register')

// 3.设置请求头

xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded")

// 4.设置请求成功后的回调函数

xhr.onload = function(){

console.log(xhr.response);

}

// 5.使用send() 方法去发生ajax请求

xhr.send('username=lyh')

</script>

</body>

题目:

对AJAX的理解? 实现一个AJAX请求?

// DAJAX全称(Async Javascript and XML),即异步的JavaScript 和XML

//是一种创建交互式网页应用的网页开发技术,可以在不重新加载整个网页的情况下,与服多

// @let xhr =new XMLHtpRequest;

//xhr.open(“请求方式’,“请求地址’);

//xhr.οnlοad=function()[请求成功后的回调函数};

//..xhr.send()

七、HTTP状态码

知识点:

1开头的状态码 (信息类)

// 100,接收的请求正在处理

// 2开头的状态码 (成功类)

// 200,服务器已成功处理了请求。

// 3开头的状态码 (重定向)

// 301,永久性重定向。302,临时重定向

// 4开头的状态码 (客户端错误)

// 400,错误请求,服务器不理解请求的语法。403,服务器拒绝请求。

// 5开头的状态码 (服务器错误)

// 500,服务器内部错误,无法完成请求。503,服务器停机维护,无法处理请求

// 题目:

// 1.表示请求发送成功的状态码是( A )

// A.200

// B.300

// C.400

// D.500

// 2.HTTP应答中的500错误指的是 ( A )

// A.服务器内部错误

// B.文件未找到

// C.客户端网络不通

// D.没有访问权限

// 3.在HTTP中,总共有5类状态码,请简单介绍一下这5类状态码

// (D1XX: 信息,服务器收到请求,需要请求者继续执行操作。

// 22XX: 成功,操作被成功接收并处理。常见的是200,代表请求成功。

// 33XX:重定向,表示需要进一步的操作以完成请求。

// 44XX:客户端错误,请求包含语法错误或无法完成请求。

// 55XX:服务端错误,服务器在处理请求的过程中发生了错误。

八、npm包管理

// 知识点:

// npm install 模块名: 本地安装。安装到当前项目的node_modules目录下,只有当前项目可以用此依赖.

// npm instal[ 模块名-g:全局安装。电脑上的任何项目都可以使用这个依赖。

// npm instal[ 模块名-save: 安装到node_modules目录下,一般安装生产环境所用依赖。如vue,element-ui。

// npm instal 模块名-save -dev: 安装到node _modules目录下,一般安装开发环境所用依赖。如webpack、babel.

//题目:

// 使用npm下载全局包的指令是 ( B

// A.npm install 模块名(安装

// B.npm install 模块名-g

// C.npm unstall 模块名(删除

// D.npm install模块名-save

九、相等(==)和全等(===)运算符

// 案例:

//console.log( 6 == '6'); //true

//console.log( 6 === '6'); //false

// 题目:

相等 (==) 和全 (===) 运算符有哪些区别?

相等运算符用于比较两个操作数是否相等,操作数会进行类型转换l2)全等运算符用于比较两个操作数是否严格相等,操作数不会进行类型转换,

十、数据类型

共有八种数据类型,分别是:underfined、null、bollean、number、string、object、sysbol、bigint。

这些数据类型分为基本数据类型和引用数据类型

1.基本数据类型和引用数据类型区别

在方法中定义的非全局基本数据类型的具体内容是存储在栈中的。

引用数据类型变量,其具体内容都是存放在堆中的,而栈中存放的是具体内容所在的内存地址

2.基本类型和引用类型

基本类型:Undefined、Null、Boolean、Number和String,基本类型在内存中占据空间小、大小固定,他们的值保存在栈(stack)空间。

引用类型:(对象、数组、函数),引用类型占据空间大、大小不固定,栈内存中存放地址纸箱堆(heap)内存中的对象

十一、localStorage和sessionStorage区别?

localStorage:没有过期时间。

sessionStorge:当用户关闭浏览器后,数据将被删除。

十二、ES6新特性

let和const、模块化、箭头函数、解构赋值、模板字符串、Promise、Map和Set数据结构、装饰器..

var有变量提升

十三、同步操作和异步操作

异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。

而同步处理则与之相反,需要一件事完成之后才能走另外一件事,不能“分心”

举例:

异步处理-小明一边吃西瓜一边看电视;

同步处理-小明吃完了西瓜再去看电视;

题目:

如何理解同步和异步?

1、同步指两个进程的运行是相关的,一个进程要阻塞等待另外一个进程的运行

2、异步的意思是两个进程毫无相关。发送完一个请求,不必等待返回。

十四、闭包

闭包(closure)是一种代码形式,内部函数访问外部函数的局部变量。

在JS中,每当创建一个函数,闭包就会在函数创建的同时被创建出来,作为函数内部与外部连接起来的一座桥梁。

举例:JS函数A里面有一个函数B,函数B访问了函数A里面定义的局部变量,此时就产生了闭包。变量所在的函数就是闭包函数,这里A就是闭包函数

作用:解决变量污染问题,让变量别函数保护起来

十五、fs模块

node提供了一个内置模块fs,专门用来操作文件。可以读取一个文件的内容,也可以把内容写入到一个文件。

导入模块:require('模块名')

读取文件:fs.readFile('文件的路径',(err,data) => { } )

写入文件:fs.writeFile('文件的路径',写入的内容,err => { } )

追加文件内容:fs.appendFile('路径','要追加的内容',err => { } )

拷贝文件:fs.copyFile('要拷贝的文件路径','目标文件的路径')

删除文件:fs.unlink('文件路径',err => { } )

十六、HTML

1.Promise?

目的:解决异步编程中回调地狱的问题,将异步操作以同步操作的流程表达出来,避免层层嵌套的回调函数。

用法:调用promise.then()方法,then方法可以接受两个回调函数函数作为参数。成功,就会执行.then方法的第一个回调函数。失败,就会执行then方法的第二个回调函数。

2.异步编程的实现形式?

回调函数的方法。

Promise对象。

async/await函数。

十七、对JSON的理解

JSON是JS对象的字符串表示法,它使用文本表示一个JS对象的信息,本质是一个字符串。
要实现JSON字符串转换为JS对象,使用JSON.parse()方法。
要实现JS对象转换为JSON字符串,使用JSON.stringify()方法。

十八、promise的基本用法

1.Promise.resolve 方法:(value)=>(1)value: 成功的数据或 promise

说明:返回一个成功/失败的-promise 对象。

2.Promise.reject 防法:(reason)=>(1)reason: 失败的原因

说明:返回一个失败的 promise 对象

node.js知识点相关推荐

  1. 【node.js知识点(补充版)】

    文章目录 一.[定时器] 二.[变量] 三.[字符串] 四.[数组] 五.[数组方法] 六.[数据结构Set] 七.[请求方法] 八. [HTTP状态码] 九.[npm包管理] 十.[Math对象] ...

  2. node.js知识点总结

    一.当exports对象和module.exports对象指向的不是同一个对象时,以module.exports对象为准. 二.系统模块 // 1. fs.readFile() 读取文件 // 语法格 ...

  3. Node.js知识点整理之----Buffer类

    Buffer类,是用来创建一个专门存放二进制数据的缓存区. Buffer类,是一个可以在任何模块中使用的全局类. Buffer类使用 new 关键字创建该类的实例对象. 三种形式创建实例对象: new ...

  4. nodejs实战《一起学 Node.js》 使用 Express + MongoDB 搭建多人博客

    GitHub: https://github.com/nswbmw/N-blog N-blog 使用 Express + MongoDB 搭建多人博客 开发环境 Node.js: 6.9.1 Mong ...

  5. 45天带你玩转Node(第一天)初探Node.js

    45天带你玩转Node 粉丝要求博主系统的写一篇关于Node.js的学习资料,但其实我们的Node.js知识点并不少,所以博主为大家搭建了一个专栏,为了方便大家系统的学习Node.js,大家记得订阅哦 ...

  6. 解析Node.js v6.9.5官方文档的第一个例子的知识点

    2019独角兽企业重金招聘Python工程师标准>>> 这段代码是nodejs界的"hello word",使用nodejs搭建了服务器并返回"hell ...

  7. node.js学习文档_学习NodeJs从每天一个小知识点开始

    NodeJs中process.cwd()与__dirname的区别: process.cwd() : 是当前执行node命令时候的文件夹地址 --工作目录,保证了文件在不同的目录下执行时,路径始终不变 ...

  8. 【node.js】知识点总结

    不会就问就查询!科技利民,学海无涯2! 一.概念 Node.js不是语言.不是库.不是框架: Node.js是JavaScript的运行环境,可以解析.执行JavaScript代码: 使JavaScr ...

  9. Node.js前置知识点(二):同步/异步

    前言 本文是node.js前置知识系列文章的第二篇,主要介绍 同步/异步:阻塞/非阻塞 的相关概念 (参考来源 见文末的 Reference) 一 什么是 同步/异步 同样从 What的角度开始介绍, ...

最新文章

  1. 大胆,用Python爬一爬都是哪些程序员在反对996?!
  2. 接受返回值 server sql_SQL,何必在忆之一(基础篇)
  3. 在Windows环境下配置QT Creator 读取NC文件(NetCDP,C++接口)
  4. UIPasteboard
  5. mysql内置函数,在mysql里面利用str_to_date()把字符串转换为日期格式
  6. 2013计算机视觉代码合集一
  7. android实现手机拍照以及图片预览功能_手机系统将有A/B分区?Android 11这些变化你关注过吗...
  8. gateway 车辆网关
  9. 洗礼灵魂,修炼python(42)--巩固篇—type内置函数与类的千丝万缕关系
  10. Android下拉刷新上拉更多瀑布流(附源码)
  11. android图标成功,Android多启动图标实现
  12. flex4 权威指南 part01
  13. MMD原神动画制作(学习教程一)
  14. CMD下载速度过慢解决方案
  15. vue获取剪切板内容_Vue实现剪贴板复制功能
  16. 技术篇(二)Demo示例——Bundle打包和加载
  17. 设置python程序开机自启动
  18. Gerrit no Verified 在最新的2.7版本之后添加Verified
  19. 报错:在实体引用中, 实体名称必须紧跟在 后面。
  20. c语言中3%3e2%3e1的值,Javascript中的空数组值

热门文章

  1. ipad8和ipad air4的区别
  2. 计算机控制系统席爱民4,计算机控制系统(席爱民).pdf
  3. 树莓派安装使用全记录
  4. java计算机毕业设计小区综合管理系统源代码+数据库+系统+lw文档
  5. 计算机密码忘了幽默回答,要不是他,你根本不会忘记密码
  6. 游戏是怎么作出来的(一)
  7. Mysql指纹匹配_指纹匹配算法-设备指纹算法-指纹算法sha1是安全的
  8. 源码来袭!!!基于jquery的ajax分页插件(demo+源码)
  9. NVIDIA Drive PX2 使用笔记
  10. Solder Mask与Paste Mask