每天10个前端小知识 <Day 5>

2024-01-21

前端面试基础知识题

1. typeof 与 instanceof 有什么区别

typeof与instanceof都是判断数据类型的方法,区别如下: typeof会返回一个变量的基本类型,instanceof返回的是一个布尔值。instanceof 可以准确地判断复杂引用数据类型,但是不能正确判断基础数据类型。而 typeof 也存在弊端,它虽然可以判断基础数据类型(null 除外),但是引用数据类型中,除了 function 类型以外,其他的也无法判断。可以看到,上述两种方法都有弊端,并不能满足所有场景的需求 如果需要通用检测数据类型,可以采用Object.prototype.toString,调用该方法,统一返回格式“[object Xxx]” 的字符串。

2. JavaScript中的事件模型有哪些

原始事件模型(DOM0级),标准事件模型(DOM2级),IE事件模型(基本不用)。具体描述请点击 此链接

3. == 和 ===有什么区别,分别在什么情况使用?

等于操作符用两个等于号( == )表示,如果操作数相等,则会返回 true。
等于操作符(==)在比较中会先进行类型转换,再确定操作数是否相等。
两个都为简单类型,字符串和布尔值都会转换成数值,再比较。简单类型与引用类型比较,对象转化成其原始类型的值,再比较。两个都为引用类型,则比较它们是否指向同一个对象。null 和 undefined 相等。存在 NaN 则返回 false全等操作符由 3 个等于号( === )表示,只有两个操作数在不转换的前提下相等才返回 true。即类型相同,值也需相同。

4. Javscript数组的常用方法有哪些?

- 下面前三种是对原数组产生影响的增添方法,第四种则不会对原数组产生影响

  • push()
  • unshift()
  • splice()
  • concat()

- 下面三种都会影响原数组,最后一项不影响原数组:

  • pop()
  • shift()
  • splice()
  • slice()

- 即修改原来数组的内容,常用 splice

  • splice()

- 即查找元素,返回元素坐标或者元素值

  • indexOf()
  • includes()
  • find()

具体描述请点击 此链接

5. 遍历数组的方式有哪些?

javascript原生遍历方法的建议用法:

  • for 循环遍历数组
  • for...in 遍历对象
  • for...of 遍历类数组对象(ES6)
  • Object.keys() 获取对象属性名的集合

遍历.png

具体描述请点击 此链接

6. async/await 怎么进行错误处理?

(async () => { 
    const fetchData = () => { 
        return new Promise((resolve, reject) => { 
            setTimeout(() => { 
                resolve('fetch data is me') 
            }, 1000) 
        })
    } 
    
    // 抽离成公共方法 
    const awaitWrap = (promise) => {
        return promise 
            .then(data => [null, data]) 
            .catch(err => [err, null]) 
    } 
    
    const [err, data] = await awaitWrap(fetchData()) 
    console.log('err', err) 
    console.log('data', data) 
    // err null 
    // data fetch data is me 
})()

7. CSS动画和JS实现的动画分别有哪些优缺点?

CSS动画:
优点 - 浏览器可以对动画进行优化。代码相对简单,性能调优方向固定。对于帧速表现不好的低版本浏览器,CSS3可以做到自然降级,而JS则需要撰写额外代码。
缺点 - 运行过程控制较弱,无法附加事件绑定回调函数。代码冗长,想用CSS实现稍微复杂一点动画,最后CSS代码都会变得非常笨重。
JS动画:
优点 - 控制能力很强, 可以在动画播放过程中对动画进行控制:开始、暂停、回放、终止、取消都是可以做到的。 动画效果比css3动画丰富,有些动画效果,比如曲线运动,冲击闪烁,视差滚动效果,只有js动画才能完成。CSS3有兼容性问题,而JS大多时候没有兼容性问题。
缺点 - 代码的复杂度高于CSS动画。JavaScript在浏览器的主线程中运行,而主线程中还有其它需要运行的JavaScript脚本、样式计算、布局、绘制任务等,对其干扰导致线程可能出现阻塞,从而造成丢帧的情况。

8. 前端实现动画有哪些方式?

前端常用的动画实现方式有以下种:

  1. css3的 transition 属性
  2. css3的 animation 属性
  3. 原生JS动画
  4. 使用 canvas 绘制动画
  5. SVG动画
  6. Jquery的 animate 函数
  7. 使用gif图片

具体描述请点击 此链接

9. 写一个返回数据类型的函数,要求自定义的类实例化的对象返回定义的类名

function myTypeof(data) { 
    var toString = Object.prototype.toString; 
    var dataType = data instanceof Element ? "Element" : toString.call(data).replace(/\[object\s(.+)\]/, "$1") 
    
    if(dataType === 'Object'){ 
        return data.constructor.name 
    } 
    
    return dataType 
};

具体描述请点击 此链接

10. cookie、localStorage和sessionStorage 三者之间有什么区别

生命周期

  • cookie:可设置失效时间,没有设置的话,默认是关闭浏览器后失效
  • localStorage:除非被手动清除,否则将会永久保存。
  • sessionStorage: 仅在当前网页会话下有效,关闭页面或浏览器后就会被清除。

应用场景
从安全性来说,因为每次http请求都会携带cookie信息,这样无形中浪费了带宽,所以cookie应该尽可能少的使用,另外cookie还需要指定作用域,不可以跨域调用,限制比较多。但是用来识别用户登录来说,cookie还是比stprage更好用的。
其他情况下,可以使用storage,就用storage。storage在存储数据的大小上面秒杀了cookie,现在基本上很少使用cookie了。
ie还需要指定作用域,不可以跨域调用,限制比较多。但是用来识别用户登录来说,cookie还是比stprage更好用的。
其他情况下,可以使用storage,就用storage。storage在存储数据的大小上面秒杀了cookie,现在基本上很少使用cookie了。
localStorage和sessionStorage唯一的差别一个是永久保存在浏览器里面,一个是关闭网页就清除了信息。localStorage可以用来夸页面传递参数,sessionStorage用来保存一些临时的数据,防止用户刷新页面之后丢失了一些参数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每天10个前端小知识 <Day 5> 的相关文章

随机推荐

  • iologmsg.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个iologms
  • 每天10个前端小知识 <Day 8>

    1 Javascript中如何实现函数缓存 函数缓存有哪些应用场景 函数缓存 就是将函数运算过的结果进行缓存 本质上就是用空间 缓存存储 换时间 计算过程 常用于缓存数据计算结果和缓存对象 缓存只是一个临时的数据存储 它保存数据 以便将来对
  • 2种方法,教你使用Python实现接口自动化中的参数关联

    通常在接口自动化中 经常会参数关联的问题 那么什么是参数关联 参数关联就是上一个接口的返回值会被下一个接口当做参数运用 其中Python中可以实现参数关联的方法有很多种 今天小编给大家介绍下 如何通过Python来实现接口自动化中的参数关联
  • WEB前端常见受攻击方式及解决办法总结

    一个网址建立后 如果不注意安全问题 就很容易被人攻击 下面讨论一下集中漏洞情况和放置攻击的方法 一 SQL注入 所谓的SQL注入 就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串 最终达到欺骗服务器执行恶意的SQL命
  • RF自动化环境安装+自动化实例解析

    RF定义 通用型的 自动测试框架 绝大部分的软件的的自动化系统都可以采用它 特点 测试数据文件 Test Data 对应一个个的测试用例 测试数据文件里面使用的功能小模块叫关键字 由测试库 Test Library Robot Framew
  • infocardapi.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个infocar
  • 欧盟反垄断主管即将会见库克,iPhone NFC功能要开放了?

    1月5日路透社报道 欧盟反垄断主管玛格丽特 维斯塔格 Margrethe Vestager 即将在下周举办会议 会见苹果 博通 英伟达等多个科技公司CEO 苹果首席执行官蒂姆 库克 Tim Cook 就在其中 欧盟反垄断想来大家应该已经不陌
  • ir32_32.dll文件丢失导致程序无法运行问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个ir32 32
  • 每天10个前端小知识 <Day 6>

    前端面试基础知识题 1 使用js实现二分查找 二分查找 也称为折半查找 是指在有序的数组里找出指定的值 返回该值在数组中的索引 查找步骤如下 从有序数组的最中间元素开始查找 如果该元素正好是指定查找的值 则查找过程结束 否则进行下一步 如果
  • 几个Python小案例,爱上Python编程!

    Python是一种面向对象的解释型编程语言 源代码与解释器CPython遵守GPL协议 Python语法简洁清晰 语法简洁清晰 那么我们用少量的Python代码能做哪些有趣的东西 温馨提示 文末必看 一 画爱心表白 1 图形都是由一系列的点
  • 使用 Neo4j 和 LangChain 集成非结构化知识图增强 QA

    目前基于大模型的信息检索有两种方法 一种是基于微调的方法 一种是基于 RAG 的方法 信息检索和知识提取是一个不断发展的领域 随着大型语言模型 LLM 和知识图的出现 这一领域发生了显着的变化 特别是在多跳问答的背景下 接下来我们继续深入
  • 用户数据中的幸存者偏差

    幸存者偏差 Survivorship bias 是一种常见的逻辑谬误 意思是没有考虑到筛选的过程 忽略了被筛选掉的关键信息 只看到经过筛选后而产生的结果 先讲个故事 二战时 无奈德国空防强大 盟军战机损毁严重 于是军方便找来科学家统计飞机受
  • 小白刷题之图形输出

    拓展 string string int num char ch num表示打印字符个数 ch表示打印内容 include
  • Python自动化操作:简单、有趣、高效!解放你的工作流程!

    今天跟大家分享一套自动化操作流程解决方案 基于 Python语言 涉及 pyautogui pyperclip pythoncom win32com 依赖包 安装命令为 pip install pyautogui pip install p
  • 怎么注册微商城?开启微商城之旅

    在这个数字化时代 微商城的出现为商家提供了一个全新的机会 商家企业可以通过微商城来展示和销售自己的产品 而对于一些商家而言 不知道怎么注册微商城 下面给大家做一个简单的分享 第一步 选择合适的微商城搭建工具 在注册微商城之前 首先需要选择一
  • 2024年网络安全十10大发展趋势发布

    2023年网络安全十10大发展趋势发布 近日 中国计算机学会 CCF 计算机安全专委会中 来自国家网络安全主管部门 高校 科研院所 大型央企 民营企业的委员投票评选出2023年网络安全十大发展趋势 福利 趋势一 数据安全治理成为数字经济的基
  • Windows7系统iprop.dll文件丢失问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个iprop d
  • 白帽子如何快速挖到人生的第一个漏洞 | 购物站点挖掘商城漏洞

    本文针对人群 很多朋友们接触安全都是通过书籍 网上流传的PDF 亦或是通过论坛里的文章 但可能经过了这样一段时间的学习 了解了一些常见漏洞的原理之后 对于漏洞挖掘还不是很清楚 甚至不明白如何下手 可能你通过 sql labs 初步掌握了sq
  • 图解python | 字符串及操作

    1 Python元组 Python的元组与列表类似 不同之处在于元组的元素不能修改 元组使用小括号 列表使用方括号 元组创建很简单 只需要在括号中添加元素 并使用逗号隔开即可 tup1 ByteDance ShowMeAI 1997 202
  • 每天10个前端小知识 <Day 5>

    前端面试基础知识题 1 typeof 与 instanceof 有什么区别 typeof与instanceof都是判断数据类型的方法 区别如下 typeof会返回一个变量的基本类型 instanceof返回的是一个布尔值 instanceo