正则应用
1 | let str = '54389', |
1 | //30. 在javascript对象上定义一个repeatify函数,这个函数接受一个整数参数,来明确子字符串需要重复几次,这个函数要求字符串重复指定的次数,比如:’abc’.repeatify(3); //=>”abcabcabc” |
1 | //31. `var str='hello<img src="haha.png" alt="哈哈"/>world';`正确匹配输出’hello[哈哈]world’ |
1 | // 一个url 后面好多key-value 如localhost?key=val&key2=val2&key3=val3 封装一个函数 getParam(‘key’) 通过key获得相应等号后面的值. |
1 | /* |
1 | // 获取字符串中出现次数最多的字符及出现的次数 |
同步异步编程
JS中的同步编程和异步编程
- 同步编程:任务是按照顺序依次处理,当前这件事没有彻底做完,下一件事是执行不了的
- 异步编程:当前这件事没有彻底做完,需要等待一段时间才能继续处理,此时我们不等,继续执行下面的任务,当后面的任务完成后,再去把没有彻底完成的事情完成
JS中的异步编程- 所有的事件绑定都是异步编程 xxx.onclick=function(){}
- 所有的定时器都是异步编程 setTimeout(function(){},1000)
- AJAX中一般都使用异步编程处理
- 回调函数也算是异步编程
浏览器是如何规划同步异步机制的
浏览器是多线程的,JS是单线程的(浏览器只给JS执行分配一个线程):单线程的特点就是一次只能处理一件事情
- 进程:每一个应用程序都可以理解为一个进程(浏览器打开一个页面,就相当于开辟一个进程),在一个程序中(进程中)我们经常会同时干很多事情,此时我们可以分配多个线程去同时完成多项任务
JS在单线程中实现异步的机制,主要依赖于浏览器的任务队列完成的。浏览器中有两个任务队列(主任务队列、等待任务队列)
Promise
它是ES6中新增加的类 (new Promise),目的是为了管理JS中的异步编程的,所以我们也把它称为“Promise设计模式”
- 三个状态:pending(准备:初始化成功,开始执行异步的任务)\fulfilled(成功)\rejected(失败)
1 | new Promise(() => { |
js动画
1 | /*==ANIMATE动画库==*/ |
动画函数封装
1 | //=>UTILS操作CSS工具库 |