![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JS手写题
记录了一些面试要用到的js手写题
Pinia_0819
欲买桂花同载酒,终不是少年游.
记录平时要用到的知识,欢迎小伙伴一起探讨前端技术问题!
展开
-
JS 数组常用方法
js数组中常用方法原创 2023-04-26 00:00:00 · 330 阅读 · 0 评论 -
JS 字符串常用方法
以上是常用的字符串常用方法及其功能介绍。使用方法需要根据实际需求进行调用。原创 2023-04-25 11:14:24 · 425 阅读 · 0 评论 -
JS sort() 排序
sort()排序参数可选 ,参数用来定义自己处理的逻辑。原创 2022-08-12 11:33:34 · 183 阅读 · 0 评论 -
JS 自定义用setTimeout 实现 setInterval功能
自定义用setTimeout 实现 setInterval功能// setTimeout(function() {// console.log('定时炸弹')// },1000)// setInterval(function() {// console.log('闹钟')// },1000)// 自定义用setTimeout 实现 setInterval功能function newSetTimeout(fun,timer) { function inside()原创 2022-03-18 18:58:18 · 437 阅读 · 0 评论 -
JS 数组去重
var arr = [1, 2, 1, 1, 1, 2, 3, 3, 3, 2]// onefunction quchong(arr) { let newArr2 = [] for(let i = 0; i<arr.length;i++) { if(!newArr2.includes(arr[i])) { newArr2.push(arr[i]) } } return newArr2}let res_arr原创 2022-03-07 16:52:10 · 107 阅读 · 0 评论 -
JS 斐波那契数列
function feibo(n) { if(n <= 2) { return 1 } return feibo(n-1) + feibo(n-2) }let res = feibo(5)// 1 1 2 3 5 8 13console.log('第五个菲波那切数为', res)原创 2022-03-07 16:41:58 · 68 阅读 · 0 评论 -
JS 正则表达式千分位分隔符
function thousand(num) { return (num+"").replace(/\d(?=(\d{3})+$)/g, "$&,") } console.log(thousand(123456789));原创 2022-03-07 16:40:11 · 781 阅读 · 0 评论 -
JS 是否回文
function isHuiWen(str) { return str == str.split("").reverse().join("")}// 判断一个数是否为回文数 比如 12321 正读是'12321',反读也是 '12321' 正读反读都是一样的就是回文数console.log(isHuiWen("123454321"))原创 2022-03-07 16:39:11 · 48 阅读 · 0 评论 -
JS 插入排序法
function insertSort(arr) { let linshi for(let i = 0; i < arr.length; i ++) { if(arr[i] < arr[i - 1]) { linshi = arr[i] arr[i] = arr[i - 1] let j = i -1 while(j >= 0 && arr[j]原创 2022-03-07 16:37:41 · 95 阅读 · 0 评论 -
JS 快速排序
function quickSort(arr) { if(arr.length <=1) { return arr } let middle = Math.floor(arr.length/2) // splice截取 // splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。 let middleDta = arr.splice(middle,1)[0] console.log('middleDta',原创 2022-03-07 16:35:04 · 46 阅读 · 0 评论 -
JS冒泡排序
//数组从小到大排列function bubbSort(arr) { for(let i = 0; i < arr.length; i++) { //第一遍循环是循环的次数 第一次循环... for(let j = 0; j < arr.length; j++) { // 第一次循环之后把得到的数据再跟后面的去比较... if(arr[j] > arr[j+1]) { let trum = arr[j]原创 2022-03-07 16:28:40 · 39 阅读 · 0 评论 -
JS 防抖_节流
防抖_节流练习<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <titl原创 2022-03-07 16:19:29 · 145 阅读 · 0 评论 -
JS 冒泡排序
function bubbSort(arr) { for(let i = 0; i < arr.length; i++) { //第一遍循环是循环的次数 第一次循环... for(let j = 0; j < arr.length; j++) { // 第一次循环之后把得到的数据再跟后面的去比较... if(arr[j] > arr[j+1]) { let trum = arr[j]原创 2022-02-28 21:30:47 · 43 阅读 · 0 评论 -
JS 异步函数执行
async function async1() { console.log('async1 start') await async2() console.log('async1 end')}async function async2() { console.log('async2')}async1()console.log('script start')// async1 start// async2// script start// async1原创 2022-02-28 21:22:58 · 401 阅读 · 0 评论 -
JS Promise原理
class MyPromise2 { constructor(executor) { this.state = "pending" this.value = undefined this.reason = undefined this.successCB = [] this.failCB = [] let resolve = (value) => { if(this.sta原创 2022-02-28 21:18:01 · 199 阅读 · 0 评论 -
JS 宏任务_微任务
setTimeout(function(){ console.log('1')});new Promise(function(resolve){ console.log('2'); resolve();}).then(function(){ console.log('3')});console.log('4');new Promise(function(resolve){ console.log('5'); resolve();}).then(f原创 2022-02-28 21:09:38 · 134 阅读 · 0 评论 -
JS 深拷贝
方法一JSON.parse(JSON.stringify(object)) let a = { age:25, status:{ name:'大哥' } } let b = JSON.parse(JSON.stringify(a)) a.status.name = '小弟' console.log(b.status.name) //原创 2022-02-28 21:01:00 · 77 阅读 · 0 评论 -
JS 浅拷贝
浅拷贝只能拷贝对象的简单数据类型(基础数据类型)let obj = { nane:'亚瑟', age: 22, fun: function () { let skill = '沉默' console.log('原地转圈圈', skill) }}function Q_Kaobei(o) { let obj1 = {} for(let i in o) { obj1[i] = o[i] } r.原创 2022-02-27 11:30:45 · 174 阅读 · 0 评论 -
JS ES6 中的extends关键字直接实现 JavaScript的继承
利用babel工具进行转换,我们会发现extends实际采用的也是寄生组合继承方式,因此也证明了这种方式是较优的解决继承的方式。原创 2022-08-16 16:51:44 · 412 阅读 · 0 评论 -
JS 寄生组合继承
寄生组合继承 就是 组合继承 + 原型继承 的结合体 js内部会把这个寄生组成封装成 extendfunction Father(name) { this.name = name this.hbody = ['吃饭', '睡觉', '打豆豆']}Father.prototype.getName = function() { console.log(this.name)}function Son(name, age) { Father.call(this, nam.原创 2022-02-27 11:12:32 · 717 阅读 · 0 评论 -
JS 寄生式继承
寄生式继承在原型式继承基础上进行优化,利用这个浅拷贝的能力再进行增强,添加一些方法。其优缺点也很明显,跟上面讲的原型式继承一样。原创 2022-08-16 16:28:57 · 190 阅读 · 0 评论 -
JS 原型式继承
这种继承方式的缺点也很明显,因为Object.create方法实现的是浅拷贝,多个实例的引用类型属性指向相同的内存,存在篡改的可能。这里主要借助Object.create方法实现普通对象的继承。原创 2022-08-16 16:11:38 · 97 阅读 · 0 评论 -
JS 组合继承
组合继承,可以继承父类的还可以自己添加自己的属性,如Son.age属性。原创 2022-02-27 10:56:51 · 734 阅读 · 2 评论 -
JS 构造函数继承
相比第一种原型链继承方式,父类的引用属性不会被共享,优化了第一种继承方式的弊端,但是只能继承父类的实例属性和方法,不能继承父类的原型属性或者方法。可以看到,父类原型对象中一旦存在父类之前自己定义的方法,那么子类将无法继承这些方法。借助 call调用Parent函数。...原创 2022-08-16 15:35:29 · 119 阅读 · 0 评论 -
JS 原型链继承
JS 原型链继承原创 2022-02-24 23:11:28 · 133 阅读 · 0 评论