范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

400个最常见的JavaScript面试问答(1)

  大家好,我是海拥,专注于前端知识的分享。今天将给大家带来的是 400 个最常见的 JavaScript 面试问答第一部分。接下来我会持续更新(争取日更,也可能每周3-5篇),每小节大概 10 道题左右,总共会有 400 多道。
  大家一定要记得点赞收藏呀!!!
  1.在 JavaScript 中创建对象的可行方法有哪些?
  有很多方法可以在 javascript 中创建对象,如下所示 (1).对象构造函数:
  创建空对象的最简单方法是使用 Object 构造函数。目前不推荐这种方法。 var object = new Object();
  (2).对象的创建方法:
  Object 的 create 方法通过将原型对象作为参数传递来创建一个新对象 var object = Object.create(null);
  (3).对象字面量语法:
  当传递 null 作为参数时,对象字面量语法等效于 create 方法 var object = {};
  (4).函数构造器:
  创建任何函数并应用 new 运算符来创建对象实例, function Person(name){var object = {};object.name=name;object.age=21;return object;}var object = new Person("Sudheer");
  (5).带有原型的函数构造函数:
  这类似于函数构造函数,但它使用原型作为其属性和方法, function Person(){}Person.prototype.name = "Sudheer";var object = new Person();
  这等效于使用具有函数原型的对象创建方法创建的实例,然后使用实例和参数作为参数调用该函数。 function func {};new func(x, y, z);
  (或者) // 使用函数原型创建一个新实例。var newInstance = Object.create(func.prototype)// 调用函数var result = func.call(newInstance, x, y, z),// 如果结果是非空对象,则使用它,否则只使用新实例。console.log(result && typeof result === "object" ? result : newInstance);(6).ES6 类语法:
  ES6 引入类特性来创建对象 class Person {constructor(name) {this.name = name;}}var object = new Person("Sudheer");(7).单例模式:
  Singleton 是一个只能实例化一次的对象。对其构造函数的重复调用返回相同的实例,这样可以确保它们不会意外创建多个实例。 var object = new function(){this.name = "Sudheer";}2.什么是原型链?
  原型链用于基于现有对象构建新类型的对象。它类似于基于类的语言中的继承。
  对象实例上的原型可通过Object.getPrototypeOf(object)或proto属性获得,而构造函数上的原型可通过Object.prototype 获得。 3.call、apply、bind有什么区别?
  Call、Apply 和 Bind 之间的区别可以用下面的例子来解释,
  call : call() 方法调用一个函数,给定的this值和参数一一提供 var employee1 = {firstName: "Haiyong", lastName: "Rodson"};var employee2 = {firstName: "Jimmy", lastName: "Baily"};function invite(greeting1, greeting2) {console.log(greeting1 + " " + this.firstName + " " + this.lastName+ ", "+ greeting2);}invite.call(employee1, "Hello", "How are you?"); // Hello Haiyong Rodson, How are you?invite.call(employee2, "Hello", "How are you?"); // Hello Jimmy Baily, How are you?
  apply :调用具有给定this值的函数,并允许你将参数作为数组传入 var employee1 = {firstName: "Haiyong", lastName: "Rodson"};var employee2 = {firstName: "Jimmy", lastName: "Baily"};function invite(greeting1, greeting2) {console.log(greeting1 + " " + this.firstName + " " + this.lastName+ ", "+ greeting2);}invite.apply(employee1, ["Hello", "How are you?"]); // Hello Haiyong Rodson, How are you?invite.apply(employee2, ["Hello", "How are you?"]); // Hello Jimmy Baily, How are you?
  bind :返回一个新函数,允许你传递任意数量的参数 var employee1 = {firstName: "Haiyong", lastName: "Rodson"};var employee2 = {firstName: "Jimmy", lastName: "Baily"};function invite(greeting1, greeting2) {console.log(greeting1 + " " + this.firstName + " " + this.lastName+ ", "+ greeting2);}var inviteEmployee1 = invite.bind(employee1);var inviteEmployee2 = invite.bind(employee2);inviteEmployee1("Hello", "How are you?"); // Hello Haiyong Rodson, How are you?inviteEmployee2("Hello", "How are you?"); // Hello Jimmy Baily, How are you?
  Call 和 apply 可以互换。两者都立即执行当前函数。你需要决定是发送数组还是逗号分隔的参数列表更容易。你可以通过处理 Call 用于逗号(分隔列表)和 Apply 用于Array来记住。
  而 Bind 创建一个新函数,该函数将this设置为传递给 bind() 的第一个参数。 4.什么是 JSON 及其常见操作?
  JSON 是一种基于文本的数据格式,遵循 JavaScript 对象语法,由道格拉斯·克罗克福德 (Douglas Crockford) 推行。 当你想通过网络传输数据时它很有用,它基本上只是一个扩展名为 .json 的文本文件,以及一个 MIME 类型的 application/json
  解析:将字符串转换为原生对象 JSON.parse(text)
  字符串化:将本机对象转换为字符串,以便可以通过网络传输 JSON.stringify(object)5. 数组slice()方法的目的是什么?
  所述slice()方法返回在数组作为新的数组对象中选定的元件。它选择从给定开始参数开始的元素,并在给定的可选结束参数处结束,不包括最后一个元素。如果省略第二个参数,则它会一直选择到最后。
  这种方法的一些例子是, let arrayIntegers = [1, 2, 3, 4, 5];let arrayIntegers1 = arrayIntegers.slice(0,2); // returns [1,2]let arrayIntegers2 = arrayIntegers.slice(2,3); // returns [3]let arrayIntegers3 = arrayIntegers.slice(4); //returns [5]==注意==: Slice 方法不会改变原始数组,而是将子集作为新数组返回。
  6.数组splice()方法的目的是什么?
  splice() 方法用于向/从数组添加/删除项目,然后返回被删除的项目。第一个参数指定插入或删除的数组位置,而选项第二个参数指示要删除的元素数。每个附加参数都添加到数组中。
  这种方法的一些例子是, let arrayIntegersOriginal1 = [1, 2, 3, 4, 5];let arrayIntegersOriginal2 = [1, 2, 3, 4, 5];let arrayIntegersOriginal3 = [1, 2, 3, 4, 5];let arrayIntegers1 = arrayIntegersOriginal1.splice(0,2); // returns [1, 2]; original array: [3, 4, 5]let arrayIntegers2 = arrayIntegersOriginal2.splice(3); // returns [4, 5]; original array: [1, 2, 3]let arrayIntegers3 = arrayIntegersOriginal3.splice(3, 1, "a", "b", "c"); //returns [4]; original array: [1, 2, 3, "a", "b", "c", 5]==注意==: Splice 方法修改原始数组并返回删除的数组。
  7.slice()和splice()有什么区别?
  表格形式的一些主要区别
  slice()
  splice()
  不修改原始数组(不可变)
  修改原始数组(可变)
  返回原始数组的子集
  将删除的元素作为数组返回
  用于从数组中选取元素
  用于在数组中插入或删除元素
  8.你如何比较 Object 和 Map
  Object 与Maps 的相似之处在于,它们都允许您将键设置为值、检索这些值、删除键以及检测某个键是否存储了某些内容。由于这个原因,对象在历史上被用作地图。但是在某些情况下,使用 Map 有一些重要的区别。 Object 的键是字符串和符号,而它们可以是 Map 的任何值,包括functions、Object 和任何primitive。 Map 中的键是有序的,而添加到 Object 的键不是。因此,当迭代它时,一个 Map 对象按插入的顺序返回键。 您可以使用 size 属性轻松获取 Map 的大小,而 Object 中的属性数量必须手动确定。 Map 是可迭代的,因此可以直接迭代,而迭代 Object 需要以某种方式获取其键并对其进行迭代。 一个对象有一个原型,所以如果你不小心,地图中有一些默认的键可能会与你的键发生冲突。从 ES5 开始,这可以通过使用 map =Object.create(null) 绕过,但很少这样做。 Map在涉及频繁添加和删除密钥对的场景中可能表现得更好。 9.== 和 === 运算符有什么区别?
  JavaScript 提供了严格(===, !==) 和类型转换(==, !=) 相等比较。严格运算符考虑变量的类型,而非严格运算符根据变量的值进行类型校正/转换。严格的运算符遵循以下不同类型的条件, 当两个字符串具有相同的字符序列、相同的长度以及相应位置的相同字符时,它们是严格相等的。 当两个数字在数值上相等时,它们严格相等。即,具有相同的数值。这里有两种特殊情况,
  NaN 不等于任何东西,包括 NaN。
  正零和负零彼此相等。  如果两个布尔操作数都为真或都为假,则两个布尔操作数严格相等。 如果两个对象引用同一个对象,则它们严格相等。 Null 和 Undefined 类型与 === 不相等,但与 == 相等。即, null===undefined --> false 但 null==undefined --> true
  一些涵盖上述情况的例子, 0 == false // true0 === false // false1 == "1" // true1 === "1" // falsenull == undefined // truenull === undefined // false"0" == false // true"0" === false // false[]==[] or []===[] //false, 引用内存中的不同对象{}=={} or {}==={} //false, 引用内存中的不同对象10.什么是 lambda 或 箭头函数?
  箭头函数是函数表达式的较短语法,没有自己的this、arguments、super 或 new.target。这些函数最适合非方法函数,它们不能用作构造函数。
  希望大家能够给海海 点赞+收藏+关注 ,你的支持是海海更新的动力!后面我会持续分享面试经验 & 前端相关的专业知识。
  最后祝大家都能找到满意的实习和 offer!

对比行业标杆三星ZFold3,不到8K的OPPOFindN有优势吗?感谢您的阅读!我觉得这一次OPPOFindN应该是对很多人有着很强的吸引力的。从不关注数码圈的朋友发微信询问我。OPPO的折叠屏手机,FindN怎么样?我能不能拿到货?他自己想来一三星也有性价比,120Hz6400万仅1599元,你会入手吗?不会,若干年前,曾买过一台三星,从入手到出手,一直在后悔!性价比放在三星上,这真不适合!当然,虽然这几年,三星也一直在改善,在适应国人的品质,系统优化,摄像头的加持,外观的品味,可女乒进入二王一马时代!男队仅樊振东独树一帜,刘国梁不担心吗?中国乒乓球女队新老交替已经完成,新生力量已经结果女乒大旗,其实力与以前相比有过之而无不及,根本用不着担心。男队新老交替正在进行中,从队员在斯洛文尼亚wtt赛和世乒赛以及世界杯总决赛哈兰德下家名单缩小至皇马巴萨拜仁曼城,你们觉得他最终会去哪?拜仁闷骚型,心里特别想要,嘴上还说不要。皇马给一个皇马不想要的理由?巴萨大前锋,去巴萨都啥下场?北欧人混加泰罗尼亚?不看好。曼城大前锋要远离瓜秃,远离瓜秃,远离瓜秃。巴黎不求最好,哪款潜水表让你不能自拔?本期盘点2017年最好看的一些潜水表,大部分表款已经上市,喜欢又预算充足的朋友,甭管冬天夏天,先入为主。1豪利时潜水系列0175277334183表壳45。5mm精钢防水500米机真有四五十岁的女人,长得像三十多岁的女人吗?有,我就是,69年出生,化了6万多全脸自体脂肪填充,3万多眼综合,9千8纹唇,不知道底细的人,从不猜到我真年纪,都是说三十来岁,现在的日子是每个月赚的钱还做医美分期的钱,那个叫傻,有没有很动人的小故事?我有一位同学,是市委政法委的一名处级领导,老婆比他大三岁,却是地地道道的家庭主妇,说起他俩的爱情故事,让人唏嘘不已。同学年幼时家贫,父亲有病,母亲精神有点不正常。但同学兄弟两人天赋请问各国产车该怎么选,吉利,长安,哈弗?5年前侄子买了辆吉利帝豪,买前他也是在同价位的合资车中反复做了比较,最终还是买了吉利,同样价位配置高些。今年弟弟要买个代步车,侄子还是帮他爸推荐了吉利,只不过手动挡换成了自动挡,理爱因斯坦相对论那么伟大,为什么没有获得诺奖?首先明确一点,诺贝尔奖并不能与伟大划等号,获得诺贝尔奖并不意味着一定伟大,没有获得诺贝尔奖并不意味着一定不伟大!不过诺贝尔自然科学奖确实有很高的含金量,尤其是物理学奖。那么爱因斯坦王者荣耀中最强的中单是谁?没有最强!只有更强!因人因对方阵型而异。我个人打过一段时间中单,说出来与大家分享一下。中单,常规下都是选择机动性强,支援快,控制给力,输出爆炸的英雄!前段在网上看到过一个数据图,武性价比高的无线蓝牙耳机有哪些?1AirPods标杆级产品,千元以上首选2Bose降噪鼻祖3BampO北欧极简设计,漂亮4拜亚动力耳机鼻祖,底蕴深厚5JEET黑马网红,品质讲究,延迟超低,音质好6铁三角女毒代表,
江苏女孩长到22岁,母亲一直不给她办身份证,警方调查是拐来的菲菲在江苏南京打工,但是她到了22岁,依然没有自己的身份证。无论是找工作,还是租房子,或者买火车票等,都处处受限。她多次打电话给自己的母亲彭冬兰,让她给自己办理身份证,但是,母亲每纪实给舅舅拜年,却叩响了前女友家的门,最后她留我饮酒吃饭文闵逸水图源于网络我今年31岁了,是陕西渭南市华县人,现是广东东莞市一家大型鞋厂的板师兼厂长,月薪35000元。我与前女友王草琴是我在我们家乡高塘镇读高中时相爱的。我们村叫寺底村,参加变形计10年了,农村的吴宗宏和城市的易虎臣生活相差太大变形计这档综艺节目已经停播5年时间,城市主人公和农村主人公又过着怎样的生活呢?节目中最受争议的农村主人公,是吴宗宏。刚开始观众还非常心疼这个农村小孩,家境贫穷,过得不好,却很淳朴。6月6日房地产大事件汇总当代宝能恒大建业花样年1当代置业获法院批准召开大会审议债务重组计划当代置业在港交所公告,开曼群岛大法院于5月31日发布命令,指示可召开计划的债权人大会,以审议并酌情批准计划(不论法院有否批准或施加修改增早起下床脚跟突然疼一下,走一会又好了,咋回事?是生病了吗?俗话说一日之计在于晨,指的是早晨的时间最珍贵,做事的效率很高。但实际上,我要说身体健康也在于晨,很多细微的疾病症状,在早上起床后多会出现。可能一些朋友遇到过类似的情况,自己一大早醒渭南市中心医院援藏医疗队为阿里地区革吉县中小学生进行考前心理减压6月4日5日连续两天,渭南市中心医院援藏医疗队员们利用节假日休息时间走进革吉县完全小学和革吉县初级中学,为应届毕业生进行考前心理辅导。队员吕曦通过精心准备的PPT,为学生们分析了考养蚕如何提高蚕茧洁白度?做好8个养殖要点可解决该问题养殖户在出售蚕茧时,会发现蚕茧个头大,同时看起来洁白度较高,正常化蛹的蚕茧价格较好,普通蚕茧只有18元斤时,这类品质较好的蚕茧至少可以卖20元斤,一张蚕种收益就相差300500元,iOS16。0Beta1即将发布,所有更新尽收眼底iOS16全新锁屏锁屏界面支持各种小组件,可以更方便地显示天气应用通知等信息!(桌面小组件支持的App适配之后都能得到支持)锁屏界面全新推送机制可以在屏幕下方防止遮挡小组件等信息!变形计张迪与助理结婚,送其四合院疑似炫富,丽姐视频全删除相信不少网友都看过变形计,张迪是从城市来的叛逆少年,因为家境富裕,他花钱如流水。他脾气暴躁,总喜欢以武力解决问题。后来遇到农村女孩张水丽,丽姐比张迪还难伺候,不是坐在地上哭,就是扔72岁老汉独居深山与狗为伴,不敢喝酒饮山泉,谈起坎坷身世泪两行年近70岁的老人,本该步入退休生活颐养天年,不过,陕西省安康市镇坪县钟宝镇金岭村一个名为两条凹的深山当中,有一位老人独自居住在深山当中。老人的命很苦,可他早已习惯了这样的生活,想要紧急送医!2岁男童眼里发现四条虫!究竟是怎么回事?近日,山东淄博。一位2岁男孩被紧急送医。医生检查发现,患儿眼中共有4条白色半透明的小虫,长约1厘米。据悉,该虫子是一种结膜吸吮线虫,主要发生在狗和猫的结膜囊内,人眼也会被感染,而该