网易首页 > 网易号 > 正文 申请入驻

10 个最常见的 Javascript 问题

0
分享至

这10 个问题大多涉及 Javascript 的基础知识,所以如果你刚刚开始学习 JS,最好理解并掌握它们。

这个 10 问题涉及 JS 中闭包promise变量提升等等。尽管这些知识不是很难,但是知道答案是一件好事,因为其中一些经常在面试中会被问到。

Javascript 中的闭包是什么?

闭包是封闭在一起的函数的组合,其中内部函数可以访问其变量和外部函数的变量。

最简单的解释方法就是上例子:

function outer() {
var name = 'Maria';
function inner() {
console.log(name);
}
inner();
}
outer();
// 'Maria'

在上面的代码中,你可以看到inner()函数可以访问其父函数变量name。因此,如果调用outer()函数,那么inner()函数的console.log()将返回name的值Maria。

内部函数可以访问外部函数参数对象,但是内部函数参数与外部一样,则内部的参数对象会覆盖外部的参数对象。如下所示:

function outer(a, b) {
const inner = (a, b) => console.log(a, b);
inner(1, 2);
}
outer('Alice', 'Mark');
// returns 1, 2

我们使用闭包的主要原因是返回可以返回其他函数的函数。

Javascript中的 DOM 是什么

DOM 是文档对象模型,它是网站的面向对象的表示形,可以使用 Javascript 进行修改。

使用 JS 可以操纵 DOM 元素,例如颜色,位置,大小。为了选择页面的特定元素,Javascript 提供了一些方法:

1. getElementById() - 通过id属性选择一个元素

2. getElementsByName() - 通过name属性选择一个元素

3. getElementsByTagName() - 选择所选标签的所有元素,

4. getElementsbyClassName() - 选择特定类名的所有元素

* querySelector() - 通过CSS选择器选择元素。

Javascript 还提供了其他操作元素的方法,而不仅仅是获取元素,比如appendChild()或innerHTML()。

Javascript 的 Promise 是什么

Promise 是异步编程的一种解决方案,可以替代传统的解决方案--回调函数和事件。ES6统一了用法,并原生提供了Promise对象。作为对象,Promise 有以下两个特点:* (1)对象的状态不受外界影响。* (2)一旦状态改变了就不会再变,也就是说任何时候 Promise 都只有一种状态。

Promise 有三种状态,分别是:**Pending **(进行中), ** Resolved (已完成), Rejected ** (已失败)。Promise 从 Pending 状态开始,如果成功就转到成功态,并执行resolve回调函数;如果失败就转到失败状态并执行reject回调函数。

如果 Promise 被解析(resolved),我们可以调用then()方法并使用返回值执行操作。如果被拒绝(rejected),我们可以使用catch()方法来处理错误。

处理异步编程的其他方法还有async/await和callbacks。

Javascript 中的原型是什么?

原型通常指的是prototype和__proto__这两个原型对象,其中前者叫做显式原型对象,后者叫做隐式原型对象。

Javascript对象从原型继承方法和属性,而Object.prototype在继承链的顶部。Javascript prototype关键字还可以用于向构造函数添加新值和方法。

来看看示例:

function Animal(name, kind, age) {
this.name = name;
this.kind = kind;
this.age = age;
}

Animal.prototype.ownerName('Mark');

可以看到,通过使用原型,我们能够将ownerName属性添加到Animal()构造函数中。

Javascript 的 变量提升 是什么

提升是一种机制,它将所有声明的变量和函数提升到它们局部作用域的顶部,如果变量和函数被放置在全局作用域,则会被提升到全局作用域的顶部。

Javascript中,可以在变量被使用后再声明它。

提升用于避免在变量或函数有在没有定义之前就执行导致的 undefined 错误。

name = 'Ted';
console.log(name);
var name;
// 'Ted'
var name;
name = 'Ted';
console.log(name);
// 'Ted';

使用 var 声明的变量,如果没有赋值,则默认会被初始化为 undefined, let 和 const 则不会。另外,需要注意的是,在声明const时,必须同时初始化它,因为后面不可再更改它。

Javascript中的对象是什么

对象只是一种特殊的数据。对象拥有属性和方法。JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等。

对象的属性:反映该对象某些特定的性质的,如:字符串的长度、图像的长宽等;

对象的方法:能够在对象上执行的动作。例如,表单的“提交”(Submit),时间的“获取”(getYear)等;

属性只是简单的值,而方法是可以在对象上执行的操作。

var student = {
firstName: 'Alice',
lastName: 'Jones',
age: 21,
sayHi: () => {
return 'Hi, I am ' + this.firstName;
}
}

在上面的代码中,你可以看到Student对象,其中包含三个属性和一个方法。

Javascript 中的函数是什么

在javascript中函数是一段可以被执行或调用任意次数的JavasScript代码,在数据类型中属于"function"。函数也拥有属性和方法,因此函数也是对象。

在Javascript中函数定义函数声明或函数表达式由关键字function开始。在定义函数时,可以在函数名后面的括号中添加一些参数。当我们调用函数时,括号中传递的值称为参数。

function calculate(x, y) {
return x * y;
}

calculate(2, 5);
Javascript中的纯函数是什么

如果函数的调用参数相同,则永远返回相同的结果。它不依赖于程序执行期间函数外部任何状态或数据的变化,必须只依赖于其输入参数。

顾名思义,纯函数跟我们初中数学的基本函数一样,遵循一定的映射关系,输入决定输出,一个输入只能对应一个输出。不同的输入可以有相同的输出,但是相同的输入不能有不同的输出

一个函数,如果符合以下两个特点,那么它就可以称之为纯函数:

  • 对于相同的输入,永远得到相同的输出
  • 没有任何可观察到的副作用
Javascript中的构造函数是什么

构造函数是一种特殊的方法,用于初始化和创建 Javascript 类中的对象。

JavaScript 中的构造函数和其它语言中的构造函数是不同的。通过 new 关键字方式调用的函数都被认为是构造函数。

在构造函数内部,this 指向新创建的对象 Object。这个新创建的对象的 prototype 被指向到构造函数的 prototype。

如果被调用的函数没有显式的 return 表达式,则隐式的会返回 this 对象,也就是新创建的对象。

const Person = (name, age) => {
this.name = name;
this.age = age;
}

var man = new Person('Mark', 23);
console.log(man);
// { name: 'Mark', age: 23 }

在上面的代码中,我创建了一个Person构造函数,在下面的代码中,创建了一个名为man的新变量,并基于Person构造函数创建了一个新对象。

Javascript类是什么?

自从 ES6 引入以来,我们可以在Javascript中使用类。类是一种函数,我们使用关键字class代替function关键字来初始化它。

除此之外,我们还必须在类内部添加constructor()方法,该方法在每次初始化类时都会调用。

在constructor()方法内部,我们添加了类的属性。要基于现有的类创建另一个类,我们可以使用extends关键字。

在JavaScript中使用类的一个很好的例子是 React 框架,它是类的组件。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
G奶天后演唱会出现“多人运动”?窦骁宋慧乔的瓜!

G奶天后演唱会出现“多人运动”?窦骁宋慧乔的瓜!

八卦疯叔
2026-06-21 09:09:18
菲防长彻底完蛋!中方制裁不到十天,又被国内质疑:你是哪国防长

菲防长彻底完蛋!中方制裁不到十天,又被国内质疑:你是哪国防长

诗里寻那个他
2026-06-22 03:46:52
无伤亡!北京著名商业街大栅栏发生火灾!原因正在调查中

无伤亡!北京著名商业街大栅栏发生火灾!原因正在调查中

声情专递
2026-06-22 20:52:21
紧追梅西!27岁姆巴佩再轰世界波:2场3球挡不住 世界杯16场轰15球

紧追梅西!27岁姆巴佩再轰世界波:2场3球挡不住 世界杯16场轰15球

风过乡
2026-06-23 05:43:27
人民日报怒批机关事业单位的三大怪状,引基层人员共鸣!

人民日报怒批机关事业单位的三大怪状,引基层人员共鸣!

职场资深秘书
2026-06-22 14:38:13
刷爆纪录!梅西六届世界杯28场17球封王,20年书写GOAT传奇

刷爆纪录!梅西六届世界杯28场17球封王,20年书写GOAT传奇

林小湜体育频道
2026-06-23 02:59:03
低密度脂蛋白高于这个数,必须立刻重视,你的血管已经严重失控

低密度脂蛋白高于这个数,必须立刻重视,你的血管已经严重失控

垚垚分享健康
2026-06-22 20:15:11
申裕斌说,有很多教练都在帮助我研究孙颖莎,可孙颖莎只有邱贻可一个教练

申裕斌说,有很多教练都在帮助我研究孙颖莎,可孙颖莎只有邱贻可一个教练

乒乓助手
2026-06-23 02:30:57
五种动力全覆盖!全新宝马X5将于6月30日全球首发:配141kWh超大电池

五种动力全覆盖!全新宝马X5将于6月30日全球首发:配141kWh超大电池

快科技
2026-06-22 11:49:00
人到晚年,一定要在还能走动时,把这五件事办了,一旦卧床就晚了

人到晚年,一定要在还能走动时,把这五件事办了,一旦卧床就晚了

王二哥老搞笑
2026-06-21 09:50:17
把政绩刻在群众心坎上(树立和践行正确政绩观)

把政绩刻在群众心坎上(树立和践行正确政绩观)

海外网
2026-06-22 09:44:04
我在工地搬砖,女包工头走过来:你力气这么大,跟我干,工钱翻倍

我在工地搬砖,女包工头走过来:你力气这么大,跟我干,工钱翻倍

千秋文化
2026-06-20 19:40:37
外交部:中国政府已决定再次向刚果(金)等提供紧急人道主义援助

外交部:中国政府已决定再次向刚果(金)等提供紧急人道主义援助

国际在线
2026-06-22 19:23:03
地球真的生病了!塔克拉玛干沙漠边缘发洪,当地人:这辈子没见过

地球真的生病了!塔克拉玛干沙漠边缘发洪,当地人:这辈子没见过

哄动一时啊
2026-06-22 19:28:35
不负传奇!梅西18球登顶世界杯历史射手王!一战刷新九大纪录!

不负传奇!梅西18球登顶世界杯历史射手王!一战刷新九大纪录!

海浪星体育
2026-06-23 03:31:17
2亿王者级肉签公布中签结果,人数仅1.92万个,股民中到即大赚!

2亿王者级肉签公布中签结果,人数仅1.92万个,股民中到即大赚!

数据挖掘分析
2026-06-22 05:55:14
NBA历史前20,特雷·杨凭借与奇才队新合同,在榜单上创造了历史

NBA历史前20,特雷·杨凭借与奇才队新合同,在榜单上创造了历史

好火子
2026-06-23 04:11:31
世界杯最大浪费!阿森纳王牌枯坐冷板凳,本可去英格兰当主力

世界杯最大浪费!阿森纳王牌枯坐冷板凳,本可去英格兰当主力

澜归序
2026-06-22 06:43:35
马宁下场比赛定了?日本球迷提前担心,希望不要执法日本比赛

马宁下场比赛定了?日本球迷提前担心,希望不要执法日本比赛

十点体坛
2026-06-22 21:45:17
莫斯科再遭大规模空袭!俄四大机场全部关闭

莫斯科再遭大规模空袭!俄四大机场全部关闭

项鹏飞
2026-06-22 20:13:48
2026-06-23 06:00:49
Nodejs开发
Nodejs开发
分享只有程序员懂的干货
648文章数 823关注度
往期回顾 全部

科技要闻

马云与阿里巴巴众高管下田插秧

头条要闻

阿根廷2-0奥地利 卫冕冠军2连胜提前晋级32强

头条要闻

阿根廷2-0奥地利 卫冕冠军2连胜提前晋级32强

体育要闻

法国球星祝中国队下届世界杯取得好成绩

娱乐要闻

陪睡陪玩是皮毛,向佐揭内娱暗规则

财经要闻

前美联储主席格林斯潘去世 享年100岁

汽车要闻

华为智驾ADS限时优惠月底结束 7月1日前下订立省3000元

态度原创

亲子
家居
艺术
数码
公开课

亲子要闻

何猷君儿子幼儿园毕业!这场面,我等普通父母看傻了

家居要闻

绿意盎然 自然之境

艺术要闻

光设计就刷屏!南京“绿洲大厦”,层层像梯田!

数码要闻

消息称三星显示已获苹果量产认证,将为折叠屏iPhone独供OLED面板

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版