首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
JS
菊花饼
创建于2023-02-11
订阅专栏
JS的常见面试题
等 1 人订阅
共35篇文章
创建于2023-02-11
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
十五.字符串翻转
let str = 'hello'// ['h','e','l','l','o'] // 先转换成数组,然后翻转,然后变回字符串 console.log(str.split('').reverse()
十四.JS 的参数是以什么方式进行传递的
基本数据类型是值传递 引用数据类型是地址传递.......................................
十三.for..in/for..of的区别
for in:一般用来遍历对象,并且可以遍历原型对象,不建议循环数组,可以循环 for of:可以遍历数字字符串数组和 newSet 对象等等,并且可以进行 break 终止,不可以 return
十二.如何中断for foreach
for: foreach:抛出异常 const arr = [2, 3, 4] arr.forEach(item => { console.log(item); throw new Error() }
十一.统计数组中出现次数最多的元素
思路:投票的思路 候选人第一次出现写名字还要写一个1,第二次出现找到这个人直接加1 先创建一个对象,然后开始遍历数组,如果发现这个元素项是第一次出现,就把这个元素项 作为对象的属性,值就是1,如果发现
十.数组去重
思路一:[...new Set([2,3,21])] 利用是set集合数据唯一性 思路二:创建一个新的空数组,遍历原始数组,如果发现元素在新数组里面没有,push进去,发现有就不管就可以
九.数组扁平化(拍扁)
思路一 利用数组flat方法 思路二 利用数组的toString方法....................
八.说一说你对dom和bom的理解
dom 文档对象模型, 将网页文档看做了一个对象 常见的api document.getElementById docuemnt.querySelector bom 浏览器对象模型,将浏览器看做了一个
七.浏览器常见缓存的区别
cookie:携带请求头 localstorage 本地存储,可以永久存储 sessionstorage 页面一刷新就没有了
六.splice,slice的区别
slice截取数组,里面的操作不影响原数组。会返回所选择的元素。 splice往数组中指定位置添加或删除元素,会影响原数组
五.闭包
什么是闭包:就是内层函数访问外层函数的变量 作用:变量私有化 ,防止数据被污染 ;不会被垃圾回收;外部函数可以访问函数内部的变量--存在问题是:内存泄漏问题 使用场景 循环里面的异步代码打印索引值会有
四.哪些情况内存泄露以及垃圾回收机制
闭包 全局变量 垃圾回收机制 内存泄漏就是不在用的内存没有及时被释放 会有两种算法进行回收 :--内存中不使用的垃圾会被回收 --引用计数法和标记清除法引用计数法:引用一次就加1,减少一次就减1 ,没
三.set,map
set(集合)数组去重 map(字典)和对象很像 区别就是对象的属性名只能是字符串,而map的属性名是任意的 weakMap:弱引用 对垃圾回收机制更加友好,不需要用户不用手动删除引用
二.深拷贝和浅拷贝
浅拷贝:就是拷贝一层,浅拷贝就是复制,两个对象指向同一个地址 深拷贝:深层次的拷贝,如果拷贝的是复杂数据类型,是新开一个栈,拷贝的是里面的值,两个对象指向不同的地址 loadsh json.parse
一.如何判断一个数据是数组
instanceof Array.isArray Object.prototype.toString.call