
js
文章平均质量分 68
Panda-6
super
展开
-
js数据类型判断的方法
js数据类型判断一共有五种方法 typeof、instanceof、constructor、Object.prototype.toString.call()、jquery.type() 1. typeof 基本数据类型中:Number,String,Boolean,undefined 以及引用数据类型中Function ,可以使用typeof检测数据类型,分别返回对应的数据类型小写字符。 另:用typeof检测构造函数创建的Number,String,Boolean都返回object 基本数据类型原创 2022-01-20 21:36:20 · 304 阅读 · 0 评论 -
浅拷贝与深拷贝 手写深拷贝
深拷贝与浅拷贝的区别 浅拷贝:只复制第一层的浅拷贝 深拷贝:深复制则递归复制了所有层级 为什么要使用深拷贝 我们希望在改变新的数组(对象)的时候,不改变原数组(对象) 数组浅拷贝 直接遍历 var array = [1, 2, 3, 4]; function copy (array) { let newArray = [] for(let item of array) { newArray.push(item); } return newArray; } var c原创 2022-01-20 21:24:49 · 190 阅读 · 0 评论 -
JS数组的方法(面试题)
js数组的方法 文章目录join()push()和pop()shift() 和 unshift()sort()reverse()concat()slice()splice()indexOf()和 lastIndexOf()forEachmapfilterevery()some() join() 就是把数组转换成字符串,默认的是逗号( ,) 书写格式:join(" "),括号里面写字符串 (“要加引号”), var arr = [1,2,3]; console.log(arr.join()); // 1原创 2022-01-20 21:14:20 · 270 阅读 · 0 评论 -
JS数据类型、栈堆存储、typeof、变量计算-类型转换
js数据类型有哪些 基本数据类型(值类型): Number、String、Boolean、Undefined、Null、Symbol(es6新增独一无二的值) 和 BigInt(es10新增); 引用数据类型: Object包含Object、Array、 function、Date、RegExp。 备注: 基本数据类型,又称值类型。 栈堆存储 值类型栈存储: 主要针对(Number、String、Boolean)三种数据。直接存储在栈(stack)中,占据空间小、大小固定,属于被频繁使用数据,所以放入原创 2022-01-19 21:08:33 · 104 阅读 · 0 评论 -
js的异步与宏任务(marcroTask)和微任务(microTask)
咱们先看道面试题 让写出console.log的打印顺序 console.log(100); setTimeout(()=>{ console.log(200); }) setTimeout(()=>{ console.log(201); }) Promise.resolve().then(()=>{ console.log(300); }) console.log(400); // 100 400 300 200 201 // 为什么300比200先打印原创 2022-01-19 19:47:09 · 166 阅读 · 0 评论 -
JS》》一招让你明白什么是垃圾回收机制和内存泄露(面试)
垃圾回收机制 浏览器的 Javascript 具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,执行环境会负责管理代码执行过程中使用的内存。其原理是:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存。但是这个过程不是实时的,因为其开销比较大并且GC时停止响应其他操作,所以垃圾回收器会按照固定的时间间隔周期性的执行。 只有函数内的变量才可能被回收 不再使用的变量也就是生命周期结束的变量,当然只可能是局部变量,全局变量的生命周期直至浏览器卸载页面才会结束。局部变原创 2022-01-15 20:04:25 · 126 阅读 · 0 评论 -
this 指向 理论总结(面试常问)
this 5大调用场景: 1.普通函数 2.对象方法 3.call、apply、bind 4.class 5.箭头函数 普通函数中的this function fn(){ console.log(this); } fn(); //相当于下面的window.fn(); window.fn(); window调用了fn,所以this指向window 对象方法中出现this let a={ name:'李四', run:function(){原创 2022-01-15 19:43:01 · 529 阅读 · 0 评论 -
闭包概念及面试题
如何产生闭包(closure) 闭包(closure),是指函数变量可以保存在函数作用域内,因此看起来是函数将变量“包裹”了起来。//根据定义,包含变量的函数就是闭包 也就是函数嵌套函数就可以称之为闭包. 作用域应对的特殊情况,有两种表现: 函数作为参数被传递 函数作为返回值被带回 函数中的自由变量,取决于函数定义的地方,跟执行的地方没关系 闭包的应用场景 闭包应用场景1,封装对象的私有属性和方法 隐藏数据 做一个简单的缓存工具 // 闭包隐藏数据,只提供 API function creat原创 2022-01-15 14:57:34 · 1590 阅读 · 0 评论 -
JS作用域、作用域链、自由变量(面试题)
作用域 作用域:就是一个变量可以使用的范围 作用域分为全局作用域、函数作用域、块级作用域(es6) js中有一个最外层的作用域,全局作用域 js中可以通过函数来创建一个独立作用域称为函数作用域 es6中新增了块级作用域(大括号,比如:if{},for(){},while(){}…) 作用域链 作用域链 自由变量的向上级作用域一层一层查找,直到找到为止,直至找到全局作用域,就形成了作用域链 变量提升(预解析) var声明的变量和function声明的函数都存在变量提升,而let const 不原创 2022-01-14 16:29:56 · 164 阅读 · 0 评论 -
JS原型与原型链(面试题)
原型 原型分为两种 prototype 每一个函数都会有prototype属性,被称为显式原型。 __proto__ 每一个实例对象都会有__proto__属性,其被称为隐式原型。 constructor 每一个prototype原型上都会有一个constructor属性,指向它关联的构造函数。 原型链 获取对象时,如果这个对象身上本身没有这个属性时,它就会去他的原型__proto__上去找,如果还找不到,就去原型的原型上去找…一直找到最顶层(Object.prototype)为止,Ob原创 2022-01-14 16:13:28 · 6142 阅读 · 0 评论