常用的JavaScript设计模式
-
单体模式
-
工厂模式
-
例模式
函数
-
函数的定义
-
局部变量和全局变量
-
返回值
-
匿名函数
-
自运行函数
-
闭包
开源分享:docs.qq.com/doc/DSmRnRG… 回调函数
=======================================================================
定义:一个函数作为另一个函数参数,在另一个函数中调用
function say(value){
console.log(value)
}
console.log(say)
//返回say方法本身,以字符串形式
//f指向函数
say('hi js')
//返回value值,就是say方法调用后的结果
//hi js
function a(callback){
console.log('a');
callback.call(this);
}
function b(){
console.log('b');
}
a(b)
//结果a
//结果b
或者可以这么理解,我买东西先不知道买什么,我先去商店,然后买具体东西函数传给我,我再买东西。完成买东西事件
function shop(my,goods,callback){
console.log(my+' '+'buy'+' '+goods);
callback()
}
shop('my','goods',function(){
console.log('shopping apple');
})
//结果my buy goods
// shooping apple
作用:处理异步函数结果
========================================================================
同步:一件事情做完做下一个事情
异步:多个事情并发执行
异步操作:setTimeout || ajax异步网络通讯
注:当一个操作开始执行后,主程序无需等待它的完成,可以继续向下执行
let num=1
setTimeout(function(){
num++
console.log(num)
},0)
console.log(num)
//控制台输出
//1
//2
===========================================================================
/*
*调用
ajax({
method:'post',
url:'http://10.7.178.115:8088/api/login',
data:{
username:nameEle.value,
password:passwordEle.value
},
success:function(data){
if(data.resultCode==1){
localStorage.setItem('usernews',JSON.stringify(data.resultInfo))
location.href='index.html'
}else{
alert('用户名密码出错')
}
},
error:function(error){
console.log(error);
}
})
*/
function ajax(options){
const xhr=new window.XMLHttpRequest()
let params=getIformation(options.data)
let method=options.method.toUpperCase()
if(method=='GET'){
xhr.open(method,options.url+'?'+params)
xhr.send()
}else if(method=='POST'){
xhr.open(method,options.url)
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded')
xhr.send(params)
console.log(params);
}
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if(xhr.status==200){
let data=xhr.responseText
data=JSON.parse(data)
options.success(data)
}else{
options.error('出错')
}
}
}
}
function getIformation(data){
let information=[]
for(let key in data){
information.push(${key}=${data[key]})
}
let str=information.join('&')
return str
}
[
开发者涨薪指南
48位大咖的思考法则、工作方式、逻辑体系
最后
编程基础的初级开发者,计算机科学专业的学生,以及平时没怎么利用过数据结构与算法的开发人员希望复习这些概念为下次技术面试做准备。或者想学习一些计算机科学的基本概念,以优化代码,提高编程技能。这份笔记都是可以作为参考的。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】