JavaScript语法笔记
- async异步: await不能放在foreach里 但放在forin里没事 async是被await阻塞的事件所以最好成对出现 当要连续调用接口的时候可以将async放在
.then(async res=>{ … await …})
- foreach内部由异步实现,所以要async/await或setTimeout来解决
- 为了在字符串里能用js或为了更方便地拼接字符串,可以使用`随便什么字符串
${变量名/js可解析的表达式}
随便什么字符串`,而此前的话只能使用'字符串'+变量+'字符串'的方式,注意须得使用反引号`就是ESC下面的那个键 - 逗号表达式:从左往右逐个计算每一个式子,它作为一个整体其值为最后一个表达式的值
- js判断变量类型:
typeof p
缺点:当p为数组时,输出为objectp instanceof Array/Object
缺点:当p为数字时,传入啥类型都是错,它只能检测出是Array还是Objectp.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便可解决接口请求的问题,要怀疑是不是超时的问题
Comments | NOTHING