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

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!

知名港星自曝直播带货被欠薪!损失很严重,足够在内地买2套房9月1日,据媒体报道,知名港星马蹄露出席了某活动,受访时她大方分享了自己的近况。曝光的近照中,戴着红色墨镜和口罩的马蹄露,穿着粉色背心出镜,下身搭配白色牛仔短裤以及红色高筒袜,打扮时隔21年至今都没有公映这部影片上映或许长津湖票房就不算什么了爱国主义大旗红,敌寇同仇赴征程,忘死舍生抛热血,凛然大义向前冲,壮歌响亮惊天地,消灭顽敌显赫功,抗美援朝出勇士,雄师百万筑长城。这是抗美援朝战争中的一幕。这部影视作品堪称国产战争片体彩排列三第2022234期藏机图解析一位天下重信义二位海上生明月三位一语定乾坤忌语四维空间任想象天下重信义,信义第一,可得数字1,海上生明月,明月为圆形可得数字0,一语定乾坤,可得数字0,思维空间任想象,可得数字4图他日白首话桑麻突然忘记哪位哲人说过我思故我在,其中的深刻内涵,不想去了解,只是望文生义的理解下,那么,我已经在这世上存在了31个春秋。而在这31个春秋中,除去孩提总角上学读书的日子,真正走入社会选择气球派对创业需要做好的心理准备女怕嫁错郎,男怕选错行,方向的正确远远大于个人的努力,说一个内行人不会讲的真相。任何一个行业存在既合理,但必然不是每个人都适合,通过培训大量的优秀学员自主创业后我们发现,小伙伴们认新国标下的白酒江湖中国小康网独家专稿文小康中国小康网记者刘彦华2022年6月1日,注定是一个值得记住的日子。当天,由国家市场监督管理总局发布的国家推荐性标准GBT151092021白酒工业术语GBT郑州青年智力障碍男子二度走失抖音寻人四日助力寻回哥哥正杰又走失了。16日下午弟弟回到家,看到在家焦急不安的父母,还没来得及询问发生了什么,弟弟突然意识到,难道是哥哥又走失了吗?思绪不禁回到2018年哥哥走失的那四五个月,弟弟直冒好命的女人,都拥有这三个特质半夜两点,小兰打电话向我哭诉,说她已经快受不了了,要不是为了孩子,她早就离婚了。这已经不是我第一次半夜接到她的电话了。闺蜜小兰,是我的大学同学。大学毕业后,她的老公,是在工作中认识多少岁算是青年人呢?今天看到一个文章,是河北省某个电影院打出了促销的消息,其大概的意思是若来看电影的顾客,可以携带家里的老人一起免费观看某一部电影(电影名字略)。这里面对于老人一词,进行了描述,是指1香肠派对贡献增长,心动H1游戏收入同比增8至11亿8月31日,心动公司发布2022年中期业绩。数据显示,上半年心动公司实现营收15。94亿元,同比增加15。6,主要来自游戏信息服务两大业务板块。其中,游戏业务收入11。26亿元,占男人过了40岁,别总剪板寸头,看着油腻也不帅,不招女生喜欢民间有句话流传检测一个男人帅不帅要看他能否驾驭光头,但毕竟光头这个发型并不能适合出现在日常生活中,男人们就留起了平替版的寸头,但是你以为真的很帅气吗?看看池昌旭,剪了寸头后,不少粉
为什么你穿咖啡色不好看?看看下面这些穿搭示范,你就明白了如果时尚有轮回,那故事的开始就从秋冬该有的颜色说起,秋冬最常见的咖啡色系真的怎么搭配都好看,在这个冬天真的是必不可少的存在,所以黑白灰烂大街了!2022年流行咖啡色,穿对了太迷人,2023年减产13!失去中国市场的霸主三星,日子也不好过了北京时间11月8日,据多家外媒报道,三星电子计划在2023年削减智能手机产量至2。9亿部,同比下降13。三星削减产量并不令人意外,2022年全球智能手机出货量持续下滑,头部手机厂商为什么学历不值钱,但学区房值钱?今天我们来探讨一下为什么学历不值钱,但学区房值钱?曾经有一种说法,火遍整个朋友圈因为学区房价值是你爸妈用未来现金流折现法估值,学历价值是你老板用可比法估值。区别在哪儿?其实,未来现讲一味蛤蒌,牙痛胃痛骨痛疟疾咳嗽水肿均可选用,好用才是真香开门见山,今天想和你聊一聊药食同源的蛤蒌。一提及蛤蒌,身处南方的小伙伴们一定深有体会。在南方,蛤蒌是一种广为流传的调味品,与紫苏叶齐名。在两广地区,你可以在大部分的菜品里都能见到蛤把面条放进绞肉机里,这样做太香了,比吃红烧肉还过瘾,超解馋国以民为本,民以食为天,各位老饕大家好!面食是北方地区的主食之一,为了节省时间,人们经常购买面条回家煮,难免买多。今天,我要教大家用干面条搭配肉沫,做个好吃的丸子,吃起来肉香爽口,木耳切记不要用清水泡,加上食盐和面粉,3分钟泡发,又大又干净头条创作挑战赛黑木耳因为营养价值极高,一直都被誉为菌中之王,并且享有素中之荤的美誉,尤其钙铁含量超高,钙是牛奶的3倍还多,铁是猪肝的7倍,是日常生活中补铁补钙的专家!正是因为如此,11月7日立冬早上好图片大全,立冬早安带字图片早安心语做有用的事,说强硬的话,想想美好的事情,睡好觉,把时间花在进步上,而不是抱怨。愿你遇见这样的人,愿你成为这样的人。早上好!当你失败的时候,身边会有一群关心你的人,他们会问你发生了什立冬后,建议男人若不差钱,多吃4种ampampquot软黄金ampampquot,增强体质好过冬立冬后,天气逐渐寒冷。都说立冬补冬,立冬时节是冬天的开始,也是进补的黄金期。立冬之后,不管是大人还是孩子,都是需要进补的。尤其是家里的顶梁柱男人,更应该多补充营养,增强体质。再苦再全锦赛开战,34岁张继科赴任新身份出炉,球迷支持,刘国梁欣慰最近全锦赛正在激烈开战中,接下来将会进入团体赛决赛的争夺。而值得关注的是,在这一次国乒的这些现役主力正在努力征战的同时,张继科作为国乒非常重要的成员,他在最近拥有新的工作新的身份,114100,NBA大黑马逆转湖人,8连胜高居分区第2!威少表现抢眼湖人队又输球了!11月7日凌晨4点30分开打的这场焦点大战,湖人主场对阵骑士。虽说过往赛季,骑士是一个较弱的球队,但是本赛季他们换了一个活法,尤其在引入强力新星米切尔之后,实力大幅全锦赛上海险胜广东男团夺冠,樊振东完成全满贯伟业樊振东在第一盘比赛中3比0战胜周启豪。图新华社新京报讯(首席记者孙海光)11月6日晚,2022年全国乒乓球锦标赛在湖北黄石结束,上海队辽宁队分获男女团冠军。凭借这个男团冠军,樊振东