Web项目(JS为主)经验

发布于 2021-07-29  803 次阅读


JavaScript语法笔记

  • async异步: await不能放在foreach里 但放在forin里没事 async是被await阻塞的事件所以最好成对出现 当要连续调用接口的时候可以将async放在.then(async res=>{ … await …})
  • foreach内部由异步实现,所以要async/await或setTimeout来解决
  • 为了在字符串里能用js或为了更方便地拼接字符串,可以使用`随便什么字符串${变量名/js可解析的表达式}随便什么字符串`,而此前的话只能使用'字符串'+变量+'字符串'的方式,注意须得使用反引号`就是ESC下面的那个键
  • 逗号表达式:从左往右逐个计算每一个式子,它作为一个整体其值为最后一个表达式的值
  • js判断变量类型
    • typeof p 缺点:当p为数组时,输出为object
    • p instanceof Array/Object 缺点:当p为数字时,传入啥类型都是错,它只能检测出是Array还是Object
    • p.constractor === Number 优点:好像什么类型都行,恒等对比的是函数
  • 数组里有没有某一项用 list.includes(item) true or false
  • 替换/删除/添加数组内某一项:list.splice(index,len,[item]) 该方法会改变原始数组
  • position: flex; 其中某元素靠右:{margin-left: auto}或{flex: 1; text-align: right;}
  • a = b??[] 指的是如果b不是undefined或null 那b就赋给a 否则a就是[]
  • 对象转为字符串:const obj = {id: 0, name: 'zhangsan'}; const objToStr = JSON.stringify(obj);
  • 字符串转为对象:const str = '{"id":0,"name":"张三"}'; const strToObj = JSON.parse(str);
  • pjax是什么? 结合pushState和ajax技术, ajax可以异步无刷新地改变页面内容, 但无法改变页面URL, pjax就是对这种需求的补充

Web项目开发经验

  • webpack与requireJS:
    • webpack在模块化设计上可以兼容AMD及其衍生标准的实现,也兼容ECMAScript模块化标准,CommonJS模块化标准,同时还提供了自己的模块化标准,除模块化设计外,还提供了依赖资源的打包功能,而这些打包功能是像requirejs,systemjs这类模块化动态加载库原生不具备的。
    • 当我们在运行时去加载一个AMD模块时,requirejs更合适。如果需要在构建时将依赖与项目一同打包,则webpack更合适。
  • DOM元素仅只是无理地等价替换为其他形式的DOM便可解决接口请求的问题,要怀疑是不是超时的问题

暂时还没找到人生乐趣的消极家