最新要闻
- 世界热资讯!荣耀北斗卫星通信专利获批通过 荣耀Magic5系列将首发?
- B站《三体》动画“晚节不保”:即将跌破4分
- 全球实时:再也不怕手一抖跳广告了!规范App乱跳转新标准出台
- 热门:坚挺四年的苹果:栽了
- 关注:你以为你真的会玩《俄罗斯方块》?看完这些大神 我大悟了
- 每日速讯:春节开特斯拉出行的国内车主真不少!自驾万里的数以百计
- 微头条丨开年如何选购生产力整机!锐龙9 7950X vs i9-13900K对比测试:谁是更好的创作工具?
- 【全球聚看点】客人泡茶放近50根藏红花吓坏主人 真大补药:喝完身体并没有不适
- 四川公司回应招聘“下班到点跑的绕道”:本职工作完成不用加班
- 女子身高185求职当老师被拒 用人单位:常弯腰工作很累
- 环球焦点!599元 戴尔上架新款透明机械键盘:定制轴体 全键热插拔
- AMD Zen4笔记本登顶世界第一!31%优势碾压12代酷睿
- 【环球热闻】一汽车电梯故障 200多万的法拉利秒变“大事故车”
- NVIDIA AD106、AD107小核心首次现身:“减肥”多达30%
- 全球今亮点!《狂飙》能“逆风翻盘” 一半功劳都是热搜的
- 全球微速讯:宠托师职业受青睐!上门喂宠物 几天收入数千元
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
8个你可能不知道答案的常见JavaScript面试问题
不管你喜不喜欢,棘手的问题仍然会被野外的面试官问到。
原因是,这些问题可以告诉你很多关于你对语言的核心理解,因此你是否适合这份工作。
这些问题中涉及的常见概念包括:
(资料图片)
- Hoisting
- 关闭
- 范围
- 值与引用类型
- 原型继承
今天我们要一石二鸟。
准备好迎接下一次面试并立即复习核心概念。
1、为什么 typeoff是未定义的?
var y = 1;if (function f() {}) { y += typeof f;}console.log(y); // 1undefined
解释
- 条件语句if(function f() {})返回function f() {}真值,因此代码在 if 语句内执行。
- typeof f返回undefined,因为该函数f(){}从未在语句外if声明,所以它不“存在”在if括号外if (f(){}) { It doesn"t exist here }
这就是我们“修复”此代码片段的方式:
var y = 1;function f() {}; //declare function outside if bracketsif (f) { //f exists so we enter the if block y += typeof f; //here typeof f is function}console.log(y); // 1function
2、写一个闭包的例子
function createFunction(msg) { return function(name) { return msg + name; }}let myFunc = createFunction("Hey ");console.log(myFunc("Dude")); // Hey Dude
解释
- 第一个函数(createFunction)返回一个匿名函数
- 匿名函数msg从外部函数(createFunction())+name自身返回参数。
当我们声明变量javascript let myFunc = createFunction("Hey ")时,变量myFunc持有对外部返回的匿名函数的引用
有趣的是,当您调用javascript myFunc("Dude")(仅传递“名称”参数)时,它仍然“记住”执行msg时传入的值createFunction()。
从创建函数的外部“范围”访问变量的能力是闭包的定义之一。
在此处了解有关闭包的更多信息
3、编写一个可以像 multiply(2)(5)(10) 一样调用并返回 100 的 multiply() 函数
这与上面的示例类似,不同之处在于我们正在重新调整一个附加函数并立即调用所有函数(不使用变量来保存引用)
function multiply(x) { return function(y){ return function(z) { return x*y*z; }; }}multiply(2)(5)(10) //100
通过调用 multiply like
javascript multiply(2)(5)(10)
我们正在一个接一个地调用返回的函数。
我们可以使用中间变量使其更清晰。我们来看一下:
let func1 = multiply(2); // x is 2console.log(func1) // function(y) { return function(z) { return x*y*z } }let func2 = func1(5); // y is 5console.log(func1) // function(z) { return x*y*z }func2(10); // z is 10// finally has all 3 values and returns their product.
在此处了解有关嵌套函数的更多信息
4、delete局部变量的运算符
以下代码的输出是什么?
let output = (function(x) { delete x; return x;})(0);
*删除运算符旨在用于删除对象的属性,而不是值类型(在本例中为数字)。
这会起作用:
let obj = { name: "Gus", age: 32 }delete obj.age;console.log(obj) // { name: "Gus" }
5、delete对象运算符
const Person = { name: "Gus", age: 32,}const person1 = Object.create(Person);delete person1.ageconsole.log(person1.age); // 32
- person1创建时将其原型设置为Person对象。
- 当实例person1的age属性被删除时,我们仍然可以访问age原型对象(Person)的属性
- 这就是为什么它似乎不起作用的原因。
这是一个很大的话题,你可以在这里了解更多
6、delete数组运算符
记录 arr.length 的结果是什么?
let arr = ["a", "b", "c", "d"]; delete arr[2]; arr.length // 4
- 在数组上使用时,删除运算符将删除元素设置为“空”,但不会将其从数组中删除,也不会更改数组的长度。
7、两个 console.log 的值是多少?
var favouriteAnime = "Dragon Ball";(function() { console.log(favouriteAnime); var favouriteAnime = "Naruto"; console.log(favouriteAnime);})();// undefined// Naruto
以下是编译器如何解释这段代码:
var favouriteAnime; // declared and initialized with undefined(function() { console.log(favouriteAnime); var favouriteAnime = "Naruto"; console.log(favouriteAnime);})();favouriteAnime = "Dragon Ball";// undefined// Naruto
声明 JavaScript 函数和变量时要记住一些事情。
- 变量赋值(myVar = 5) 优先于函数声明(function func(){})
- 函数声明(function func(){}) 优先于变量声明(var myVar;) *let 或 const
- 函数声明 (function func(){}) 被提升到变量声明 (var myVar;) 之上,但未被提升到变量赋值 (myVar = 5;) 之上。
作为最佳实践,您应该始终在调用函数之前声明它们。
在此处了解有关提升的更多信息
8、你会如何检查一个数字是否是整数?
检查数字是否为十进制或整数的最简单方法是使用内置的Number.isInteger()
console.log(Number.isInteger(4)); // trueconsole.log(Number.isInteger(12.2)); // falseconsole.log(Number.isInteger(0.3)); // false
另一种方法是看除以 1 是否还有余数。
function isInt(num) { return num % 1 === 0;}console.log(isInt(4)); // trueconsole.log(isInt(12.2)); // falseconsole.log(isInt(0.3)); // false
注意:在处理浮点数时,JavaScript 的精度是有限制的。如果你检查Number.isInteger(1.0000000000000001)将返回true。你可以在这里了解更多
结论
请记住按 F12 并亲自尝试这些示例。
这个微小的动作将帮助您更长时间地记住所学内容。
这是我们今天看到的内容的回顾:
- 为什么 typeoff是未定义的?
- 写一个闭包的例子
- 编写一个可以像 multiply(2)(5)(10) 一样调用并返回 100 的 multiply() 函数
- 局部变量的删除运算符
- 对象上的删除运算符
- 数组上的删除运算符
- 两个 console.log 的值是多少?
- 你会如何检查一个数字是否是整数?
谢谢阅读!如果你喜欢这篇文章*在下面发表评论(你可以打个招呼!),如果对你有帮助,记得点赞支持哦!
为了更好的让大家认识到 JavaScript 的精髓,我们在三十天计划群里推出了几节非常重要的 JavaScript 课程体系,而且每个系列知识点都保障是完整的。感兴趣可以通过下方的练习方式参与课程哦 。如果你正在学习 JavaScript,我们已经在三十天计划中完成了 4 个综合项目实战,那不妨可以听下这个课程体系,三十天计划群里还提供了算法、数组等知识体系!
前端工程师成长方法
更多完整 JavaScript 课程体系在我们的系统班里有完整的呈现,包含了 JavaScript 基础篇、重点、算法、原理、面试题、实战案例讲解!同时也为你提供了前端高级工程师成长体系!(详细看下图内容)
如果需要深度学习的同学可以联系助理老师了解详细的课程以及课程的报名方式!(不定期会推出活动,有大额优惠券推出,活动详情联系助理老师了解即可!)如果你才开始学习前端,那么可以先学习我们的三十天计划(零基础的同学报名系统班同学可以和老师沟通制定学习计划,可以得到更快的成长!)
为帮助到一部分同学不走弯路,真正达到一线互联网大厂前端项目研发要求,首次实力宠粉,打造了《30 天挑战学习计划》,内容如下:
HTML/HTML5,CSS/CSS3,JavaScript,真实企业项目开发,云服务器部署上线,从入门到精通
- PC 端项目开发(1 个)
- 移动 WebApp 开发(2 个)
- 多端响应式开发(1 个)
共 4 大完整的项目开发 !一行一行代码带领实践开发,实际企业开发怎么做我们就是怎么做。从学习一开始就进入工作状态,省得浪费时间。
从学习一开始就同步使用 Git 进行项目代码的版本的管理,Markdown 记录学习笔记,包括真实大厂项目的开发标准和设计规范,命名规范,项目代码规范,SEO 优化规范
从蓝湖 UI 设计稿 到 PC 端,移动端,多端响应式开发项目开发
- 真机调试,云服务部署上线;
- Linux 环境下 的 Nginx 部署,Nginx 性能优化;
- Gzip 压缩,HTTPS 加密协议,域名服务器备案,解析;
- 企业项目域名跳转的终极解决方案,多网站、多系统部署;
- 使用 使用 Git 在线项目部署;
这些内容在《30 天挑战学习计划》中每一个细节都有讲到,包含视频 + 图文教程 + 项目资料素材等。只为实力宠粉,真正一次掌握企业项目开发必备技能,不走弯路 !
过程中【不涉及】任何费用和利益,非诚勿扰 。
如果你没有添加助理老师微信,可以添加下方微信,说明要参加 30 天挑战学习计划,来自博客园!老师会邀请你进入学习,并给你发放相关资料。
30 天挑战学习计划 Web 前端从入门到实战 | arry老师的博客-艾编程
8个你可能不知道答案的常见JavaScript面试问题
世界热资讯!荣耀北斗卫星通信专利获批通过 荣耀Magic5系列将首发?
B站《三体》动画“晚节不保”:即将跌破4分
全球实时:再也不怕手一抖跳广告了!规范App乱跳转新标准出台
热门:坚挺四年的苹果:栽了
关注:你以为你真的会玩《俄罗斯方块》?看完这些大神 我大悟了
UI通过元素定位实现特定区域截图
全球热推荐:2022浙江高考数学导数压轴解析
每日速讯:春节开特斯拉出行的国内车主真不少!自驾万里的数以百计
微头条丨开年如何选购生产力整机!锐龙9 7950X vs i9-13900K对比测试:谁是更好的创作工具?
【全球聚看点】客人泡茶放近50根藏红花吓坏主人 真大补药:喝完身体并没有不适
四川公司回应招聘“下班到点跑的绕道”:本职工作完成不用加班
世界今亮点!MySQL数据类型补充
当前资讯!Python中的关键字的用法
每日热闻!在 FreeBSD 12 上安装 Gitea
女子身高185求职当老师被拒 用人单位:常弯腰工作很累
环球焦点!599元 戴尔上架新款透明机械键盘:定制轴体 全键热插拔
AMD Zen4笔记本登顶世界第一!31%优势碾压12代酷睿
环球最资讯丨ES6 简介(一)
【环球热闻】一汽车电梯故障 200多万的法拉利秒变“大事故车”
NVIDIA AD106、AD107小核心首次现身:“减肥”多达30%
全球今亮点!《狂飙》能“逆风翻盘” 一半功劳都是热搜的
全球微速讯:宠托师职业受青睐!上门喂宠物 几天收入数千元
环球微速讯:不用羡慕代驾小哥了!绿源新品TCR开售:整车超轻能跑120km
100%纯果蔬汁:味全每日C果汁5.5元/瓶抄底
私家车定速巡航失灵!时速120狂飙半小时:万幸平安无事
全球快报:《三体》主演于和伟:我本身就是科幻迷!
环球快看点丨1月新能源汽车销量榜:比亚迪“能打”两个特斯拉
全球快讯:iPhone 14 Plus出货跌到0台:苹果拒绝认输
一文搞懂工作流审批(Java+activiti)快速开发+自定义工作流
天天热推荐:HEU_KMS_Activator_v27.0.2全能系统数字许可激活工具
快看:2999元 联想扬天V14/V15笔记本上架:Zen2架构锐龙5 7520U
国产科幻FPS大作!《边境》官宣2月6日开启新测试
环球焦点!网友花2499元就买到了努比亚Z50:系统零广告 性价比无敌
每日热门:AMD终于要解决锐龙7000装机贵的麻烦了 B650主板降价
每日速递:《三体》电视剧惊现360全家桶产品:竟遭周鸿祎挑刺
天天热讯:大神教你显卡和CPU怎么搭配才合适
Python借助企业微信群机器人推送消息和文件
【天天聚看点】【验证码逆向专栏】某验“初代”滑块验证码逆向分析
快资讯丨阿里二面: BigKey、HotKey 问题严重,该如何 预防和解决
Pandas练习
2023年安卓机皇!聊聊三星S23系列与前代有哪些不同
当前观点:高颜值+顶级做工!铭瑄RTX 4080 iCraft OC16G瑷珈显卡评测:三风扇稳压71℃
全球讯息:奥迪E-Tron撞车 电池包撞飞后起火!官方:不清楚是安全功能还是隐患
天天观热点:投屏480p、禁HDMI被吐槽割韭菜!爱奇艺利润将暴增 外资力挺
全球微速讯:《森林之子》PC配置需求公布 1080Ti显卡就能爽玩
看点:微信对话生成器,生成微信聊天记录,聊天记录生成器
环球快看:跳表java实现(可直接运行)
热消息:[概率论与数理统计]笔记:5.5 单正态总体的参数假设检验
依赖注入(DI注入)
当前动态:Wine 8.1版本正式发布:首次默认启用“Windows 10”前缀
为博眼球太奇葩 四川男子用扳手代替方向盘开车拍视频:结果被扣4分
今日热闻!苹果刚发布的2299元新品HomePod 2仅支持老掉牙Wi-Fi 4:原因不服不行
“聪明的”ChatGPT 是否拥有生命?
天天热议:速度是根本!威刚UE800 U盘评测:真正跑满1GB/s
世界新动态:【算法训练营day38】动态规划理论基础 LeetCode509. 斐波那契数 LeetCode70. 爬楼梯 LeetCode746. 使用最小花
报道:韩国刷新世界最低生育率纪录:无人店铺数量持续增长 人工智能需求强
苹果营收4年来首降 库克:裁员是最后手段
低于20万会买吗?特斯拉新款Model 3外形曝光:续航、动力大增
天天热讯:今晚油价或迎年内第二次上调:预计每升上涨0.17元
播报:奔驰销售吐槽:向每位进店客户推荐买新能源 直到客户崩溃或打我
Webpack解析与讲解
全球焦点!微软回应Xbox 360商店关闭:只是搞错了
全球最新:每逢佳节胖三斤 专家提醒:节后运动“甩膘”要注意三点
天天快资讯丨el表达式注入漏洞
环球快报:13倍浓缩:日本隅田川胶囊咖啡1.16元/杯史低
充会员才解封?爱奇艺回应一号三用被封:技术故障 跳转错误页面
《卧龙》天柱山介绍公开:红晶小姐姐美如画!
天天热点!对Intel穷追猛打!AMD Zen4c 128核心上半年杀来
突然暴雷!世界第一辆量产太阳能汽车 黄了
讯息:操作系统的体系结构
天天热头条丨2023年新势力首月销量成绩单:理想最显眼 零跑暴跌
全球新资讯:蔚来大降价超10万?总裁回应:没有 展车最多2.4万优惠
【全球报资讯】比尔·盖茨盛赞ChatGPT:称其“不亚于互联网诞生”
环球视点!女子拍抖音私闯已关闭自然保护区 或处5000元以下罚款
一个手机号搞定!微信正式支持注册小号:生活、工作能分开吗?
世界语言的分布是什么?世界语言难度排行
三星手机怎么截屏图片?三星手机如何防盗?
韩国游戏公司有哪些?韩国游戏公司排名
穿越火线什么时候出的?穿越火线怎么安装?
饱和石灰水是什么意思?饱和石灰水变浑浊的原因是什么?
诺基亚5000刚出来是多少钱?诺基亚5000手机参数
宽带连接怎么创建?宽带连接怎么设置到桌面上?
一次JSF上线问题引发的MsgPack深入理解,保证对你有收获
全球快看点丨springboot实战——总结
全球观点:(笔记)【NTP系列:05】NTP时间同步失败:Windows(W32Time)作为NTP时钟源服务端,Linux作为客户端
[概率论与数理统计]笔记:5.4 假设检验概述
西门子手机怎么样?西门子手机哪年进入中国?
联想y470双显卡驱动怎么装?联想y470双显卡怎么切换?
dota2怎么改成国服?DOTA2配置要求是什么?
世界新动态:传奇大佬、联想PC全球第一的功臣蒋凡可·兰奇去世 享年69岁
不叫003 极氪第三款车型ZEEKR X官图发布:20万买不
世界观焦点:智商碾压 新养的边牧把养5年金毛拐跑丢弃
当前滚动:办公党等到了!小米笔记本12.4二合一发布:2.5K触屏 2999元
荣耀Magic5通过3C认证:1/1.1英寸主摄、标配66W充电头
世界关注:非常强大的gsap动画
2023年值得收藏的开源或免费的web应用防火墙
keycloak~JWT各字段说明及扩展字段的方法
苹果业绩暴雷:iPhone卖不动了!库克感谢国人支持 要降价刺激销量?
《巫师3:狩猎》4.01版更新上线:光追性能更强 帧率又高了