javascript.

雇用 Top 3%自由职业者JavaScript开发人员

Toptal. 是顶级JavaScript开发人员和编码器的市场。首席执行官,CTO和管理层在顶级公司和初创公司与Toptal JavaScript Freelancer一起使用,以增强其开发团队的JavaScript开发,应用程序开发,Web开发和其他软件开发项目来实现其业务需求。

无风险审判,仅在满意时付款。

客户率 Toptal. JavaScript Developers4.4 / 5.0平均截至4,192截至4月14日,2021年4月14日

通过领先的品牌和初创公司信任

聘请自由职业者JavaScript开发人员和工程师

Jay Johnston.

自由JavaScript开发人员

美国Toptal. Member Since November 6, 2013

自1997年以来,自1997年武装部队的日子以来编码HTML,CSS和JS'在适应网络技术以满足客户需求方面的经验是广泛的。他喜欢通过电子商务解决方案,遗留集成,优化的PHP和JavaScript驱动应用为客户带来价值。

展示更多

泰勒斯特利

自由JavaScript开发人员

美国Toptal. Member Since June 25, 2018

随着强大的沟通技巧和示例性工作道德,Tyler带来了各种各样的编程语言的动手体验。然而,最近,他的焦点已经针对JavaScript图书馆。在他的职业生涯中,他曾在多个敏捷团队中作为核心开发人员工作,现在有兴趣在任何与JavaScript相关的事情上工作。

展示更多

贾斯汀米尔拉

自由JavaScript开发人员

美国Toptal. Member Since March 28, 2018

贾斯汀是一项技术专业,激情,学习和15年以上的经验领先团队,建立解决现实世界问题的企业级分布式应用。他是一个坚定的信徒,在这项努力中,必须从开发到销售到销售方面的所有方面的合作。

展示更多

大卫米哈尔

自由JavaScript开发人员

美国Toptal. Member Since April 16, 2016

David一直在为他的所有成年生活开发网站和Web应用程序。作为软件工程师,他'S从早期启动到谷歌的许多不同的软件公司工作。 David经历了许多网络框架和环境,但他特别喜欢与Meteor.js开发。他赞赏质量代码的重要性以及满足调度需求的必要性。

展示更多

詹姆斯·卡希戈

自由JavaScript开发人员

美国Toptal. Member Since February 27, 2014

詹姆斯是一个专注于Web开发的软件工程师和顾问。他在初创企业和企业商业环境建立解决方案中拥有十年的经验,其中全堆栈技能,创造性思维和对细节的高度关注是关键,快速转变是至关重要的。

展示更多

Ahmad Soliman.

自由JavaScript开发人员

埃及Toptal. Member Since September 11, 2019

作为谷歌实习生,Ahmad自2015年以来一直领先于B2B服务和管理应用程序的开发。在项目中,他通常会使架构决策有关国家管理,套件选择,测试策略,文件结构和代码分解以及团队负荷和团队负荷的架构决策任务分配。 Ahmad还建立了共享组件框架,可重用的CSS代码和可以处理项目的抽象代码' different features.

展示更多

里卡多巴斯托

自由JavaScript开发人员

德国Toptal. Member Since March 18, 2019

里卡多一直在编码20多年,在十多个编程语言中工作。他最近的工作从数据科学和机器学习到高性能的Web和移动应用程序。

展示更多

Eugeniu Rata.

自由JavaScript开发人员

美国Toptal. Member Since September 29, 2012

Eugeniu是一家圆润的全堆栈软件工程师,近二十年的经验,在许多技术不同于C / C ++,C#/。NET到Node.js,反应,角度,电子等等。他可以建立和开发新的概念,加入或领导团队,并将命令带到混乱。 Eugeniu喜欢创新和提供令人难以置信的产品,成为神话般的团队的一部分。

展示更多

Stepan Anokhin.

自由JavaScript开发人员

俄罗斯Toptal. Member Since April 30, 2018

凭借稳固的数学知识库和专业的软件开发人员背景,Stepan具有满足大多数软件工程角色的经验和技能。在他的职业生涯中,他'S工作在各种项目上,包括大型企业系统,Web开发和云计算。 STEPAN总是渴望探索计算机科学的新领域,并申请流放边缘技术。

展示更多

安东razmakhnin

自由JavaScript开发人员

俄罗斯Toptal. Member Since April 30, 2019

安东是一名高级C#开发人员,拥有超过十年的经验,开发用于.NET和.NET核心平台的本机(WinForms,WPF)和Web(ASP.NET)应用程序。他拥有领先的团队,辅导开发人员,自动化流程和开发Web应用程序的专业知识'前端。他写了非常清洁的代码,是一个用于测试的股票,确保准确性和稳定性。

展示更多

eniz vukovic

自由JavaScript开发人员

波斯尼亚和黑塞哥维那Toptal. Member Since November 4, 2019

无论是它,埃尼斯都随时准备承担挑战并提供最佳的程序员和企业家'S在Viber,Inc的维护零步系统,或者创建一个在欧洲的成千上万的人使用的社交网络。他喜欢贡献和讨论开源项目。

展示更多

立即注册以查看更多档案。

开始招聘

需要一个专业管理的软件开发项目
从开始到结束?

无论您的业务需求是什么,我们都会策划全球顶级人才的全面托管团队,为您提供最高质量的解决方案。

招聘指南

聘请伟大的JavaScript开发人员指南

与任何技术一样,知道JavaScript,然后真的知道JavaScript。以下是寻找真正的语言主人的有效技巧和问题。

阅读招聘指南

javascript.招聘资源

TrustPilot.
Toptal. in the press

...允许公司快速组装具有特定项目的合适技能的团队。

尽管对编码人员的需求加速了,Toptaltal旨在自行为几乎常春藤联盟级审查。

我们的客户
构建一个全球使用的跨平台应用程序
Thierry Jakicevic.
构建一个全球使用的跨平台应用程序
1
2
3
为游戏创建一个应用程序
Conor Kenney.
为游戏创建一个应用程序
1
2
3
领导数字转型
Elmar Platzer.
领导数字转型
1
2
3
推荐书

三普国不会'T存在没有顶尖。顶部项目使我们能够用产品经理,铅开发商和高级设计师迅速发展我们的基础。在60多天内,我们从概念到阿尔法。速度,知识,专业知识和灵活性是秒数。 Toptaltal团队作为三级队员的三级队员的一部分。他们贡献并就像其他人一样贡献并获得了发展的所有权。我们将继续使用TOPTAL。作为一个启动,他们是我们的秘密武器。

布兰特利步长,首席执行官& Co-Founder

三级

我对Toptaltal的经验非常满意。我必须与我一起工作的专业人士在几个小时内与我一起。我知道在与他讨论我的项目后,他是我想要的候选人。我立即雇了他,他浪费了浪费时间来到我的项目,甚至通过添加一些优秀的设计元素来加强额外的英里,以增强我们的整体外观。

Paul Fenley,导演

k dunn.& Associates

我与令人难以置信的 - 聪明,驱动和响应性的开发人员。它曾经很难找到优质的工程师和顾问。现在它是't.

Ryan Rockefeller,CEO

辐射群

Toptal. 立即了解我们的项目。我们与阿根廷的特殊自由职业者与阿根廷,从第1天沉浸在我们的行业中,与我们的团队无缝混合,理解我们的愿景,并产生了顶级缺口结果。 Toptal与卓越的开发人员和程序员相连,非常容易。

Jason Kulik,联合创始人

PROHATCH.

作为一个有限资源的小公司,我们可以'不起赚得昂贵的错误。 Toptal为我们提供了一个经验丰富的程序员,他们能够击中地面运行并立即开始贡献。这是一个伟大的经历和我们'd再次在心跳中重复。

斯图尔特Pocknee,校长

站点特定的软件解决方案

我们使用Toptal聘请开发人员,具有广泛的亚马逊网络服务体验。我们采访了四名候选人,其中一个候选人竟然有适合我们的要求。该过程快速有效。

ABNERGUZMÁNVILLA,CTO和首席科学家

照片kharma.

Sergio是一个令人敬畏的开发人员。顶级陷波,响应,并有效地完成了工作。

Dennis Baldwin,首席技术专家和联合创始人

PriceBlink.

与马林一起工作是一种快乐。他是有能力,专业,灵活的,非常快速地了解所需的内容以及如何实现它。

andréFischer,CTO

发布

我们需要一个专家工程师,他们可以立即启动我们的项目。辛巴纳斯与他的工作超出了我们的期望。不得不采访和追逐专家开发商是一个优秀的时光,让每个人都对我们的选择感到更加舒适,以改变平台来利用更强大的语言。 Toptog易于方便地制作了该过程。 Toptal现在是我们寻找专家级别帮助的第一名。

Web开发的高级VP德里克未成年人

Networld Media Group.

Toptal. 'S开发人员和建筑师都非常专业,易于使用。他们生产的解决方案相当定价和最高品质,减少了推出的时间。再次感谢,Toptal。

Jeremy Wessels,CEO

Kognosi.

我们拥有Toptal的伟大体验。他们将我们与完美的开发人员配对,为我们的应用程序并使过程非常容易。它也很容易超出初始时间范围,我们能够在我们的项目中保持相同的承包商。我们绝对推荐顶尖,用于快速和无缝地找到高质量的人才。

Ryan Morrissey,CTO

应用业务技术,LLC

I'M Toptal令人难以置信地印象深刻。我们的开发人员每天与我沟通,是一个非常强大的编码器。他'真正的专业人士,他的工作很棒。顶部5星。

Pietro Casoar,CEO

Ronin Play Pty Ltd

与Toptal一起工作是一个很好的体验。在使用它们之前,我花了很长时间采访其他自由职业者和尚未'找到我需要的东西。与Toptal一起参与后,他们在几天内与完美的开发人员匹配。开发商I. 'm不仅可以提供质量代码,而且他还提出了我达到的事情的建议't thought of. It'对我来说清楚,阿拉夫里知道他在做什么。强烈推荐!

乔治城,首席执行官

Buravard,Inc。

作为顶级合格的前端开发人员,我也运营了自己的咨询练习。当客户来找我来帮助填补他们的团队上的关键角色时,Toptal是我唯一舒适的推荐的地方。 Toptal.'整个候选池是最好的。 Toptal是我的最佳价值我'在近一年的专业在线工作中发现了。

Ethan Brooks,CTO

Langlotz专利&商标作品,Inc。

在嘻嘻哈哈 '早期,我们以及时的方式,我们需要一流的开发商,以实惠的价格。 Toptal送货!

Lara Aldag,CEO

h

Toptal. 让候选人非常容易,让您能使他们有能使他们有能力提供。我肯定会向寻求高技能开发人员的人推荐他们的服务。

Michael Gluckman,数据经理

mxit.

Toptal. 迅速匹配我们的项目与最佳开发人员的能力只是一流的。开发商已成为我们团队的一部分,我对他们中的每一个都证明了专业承诺的水平。对于那些希望远程工作的人与最好的工程师来说,看起来不仅仅是Toptaltal。

Laurent Alis,创始人

临身

Toptal. 让找到合格的工程师微风。我们需要经验丰富的ASP.NET MVC架构师来指导我们的启动应用程序的开发,并在不到一周内为我们提供三位伟大的候选人。在我们选择后,工程师立即在线并击中地面运行。它比我们自己发现和兽医候选人更快和更容易。

杰夫凯利,联合创始人

协调解决方案

我们需要在Scala中的一些短期工作,Toptal在24小时内发现了我们一个伟大的开发人员。这不仅仅是通过任何其他平台都无法实现。

Franco Arda,联合创始人

whatadswork.com.

Toptal. 为正在进行快速发展和规模的企业提供禁令解决方案。每个工程师我们'通过Toptal签约已经很快集成到我们的团队中,并将其工作持有最高标准的质量,同时保持炽热的发展速度。

Greg Kimball,联合创始人

nifti.com.

如何通过Toptal雇用JavaScript开发人员

1

与我们的行业专家交谈

Tophteal Engineering主任将与您合作,了解您的目标,技术需求和团队动态。
2

与手工选择的人才合作

在几天内,我们'LL向您介绍您的项目的正确JavaScript开发人员。平均匹配时间在24小时内。
3

右边合身,保证

与您的新JavaScript开发人员合作进行试用期(仅在满意的情况下付款),确保他们'在开始参与之前,右边适合。

常见问题解答

  • Toptal JavaScript开发人员如何不同?

    在Toptal,我们彻底屏蔽了我们的JavaScript开发人员,以确保我们与最高口径的人才相匹配。每年申请加入Toptal Network的100,000多人,削减少于3%。您将与工程专家(从不泛化招聘人员或人力资源代表)合作,了解您的目标,技术需求和团队动态。最终结果:来自我们网络的专家审计人才,习惯符合您的业务需求。 现在开始。

  • 我可以在不到48小时内通过Toptal雇用JavaScript开发人员吗?

    根据可用性以及您可以进行的快速,您可以在注册的48小时内开始使用JavaScript开发人员。 现在开始。

  • Toptal JavaScript开发人员的无风险试用期是多少?

    我们确保您和您的JavaScript开发人员之间的每次参与开始于最多两周的试用期。这意味着您有时间确认订婚将是成功的。如果您对结果完全满意,我们会为您收取时间并继续接触,只要您想要。如果你没有完全满意,你将不会收取费用。从那里,我们可以通过部分方式,或者我们可以为您提供可能更适合的另一个专家,并与我们将开始第二名,无风险的审判。 现在开始。

  • Toptaltal的人才有什么样的人才?

    我们的平台举办了一个非常多样化的技能集,体验和背景。我们的自由职业者的范围从软件工程师,用户体验设计师,项目管理专家和产品管理人员提供资助的专家,他们曾在谷歌,微软,亚马逊等领先公司工作过的专家。

  • TOPTAL提供的其他服务提供了什么?

    除了我们的人才匹配服务外,还提供了像开发公司这样的网络和应用程序开发服务。通过我们的Toptal项目团队,我们组装高级项目经理,Web开发人员,应用程序开发人员,用户界面设计师等技术技能的跨职能团队。我们的团队成员遵循明确的开发过程来构建一个功能的解决方案。

分享
javascript.

如何聘请一个伟大的JavaScript开发人员

挑战

在今天的技术景观中,JavaScript公司基本上成为客户端Web开发的同义词,现在,与Node.js,Vue.js和React.js等技术和JavaScript框架的出现,JavaScript正在成为一个主要的服务器端技术出色地。

因此,全堆栈开发人员恢复,参考至少某种程度的JavaScript经验在软件开发社区中基本上已成为普遍。这使得将JavaScript Web开发人员定位得非常容易,但是通过他们筛选出“精英少数”,这更像是一个挑战。发现它们需要一个高效的招聘过程,如我们的帖子所述 寻找精英少数 - 寻找和雇用该行业中最好的开发商。然后可以通过问题增强这样的过程 - 例如本文提出的那些 - 以识别全球稀疏分布的候选者,他们是真正的Javacript专家。

是的,我知道JavaScript ......

与任何技术一样,知道JavaScript开发,然后是 真的 知道JavaScript。在我们寻求真正的语言主人时,我们需要面试过程,可以准确地量化沿着JavaScript专业知识水平的连续体的候选人的位置。

对于这个目标,这篇文章提供了对评估候选人掌握JavaScript的广度和深度的关键的问题。但是,必须牢记这些样本问题是必不可少的。不是每个值得招聘的“A”候选人将能够正确地回答他们所有人,也没有回答他们所有人都保证了“A”候选人。在一天结束时,招聘仍然是一种艺术,因为它是一种科学。

评估基础

遇到“经验丰富”的JavaScript编程人员来说太常见,他们把握语言的基本原理是弱者或困惑的。

javascript.是一种基于原型的脚本语言,具有动态键入。首先,JavaScript可以对基于课堂语言(例如Java或C ++)的开发人员有点令人困惑,因为它是动态的,并且不提供传统的类实现。因此,它非常常见,无法遇到“经验丰富的”JS开发人员,其掌握语言的基础是弱者或困惑的。

因此,可以帮助评估开发人员对JavaScript基本面的掌握,包括一些更细微的细微差别,因此是面试过程的重要组成部分。这里有些例子…

问:描述JavaScript中的继承和原型链。举个例子。

虽然JavaScript是一种面向对象的语言,但它是基于原型的,并且不实现传统的基于类继承系统。

在JavaScript中,每个对象内部引用另一个对象,称为其 原型。该原型对象又具有对其原型对象的引用等。在此原型链的末尾是一个带空的物体作为其原型。原型链是继承的机制 - 原型遗传 精确 - 在JavaScript中实现。特别地,当对物体本身包含的属性进行参考时,遍历原型链,直到找到参考属性(或直到达到链的末端,在这种情况下,该属性未定义)。

这是一个简单的例子:

function Animal() { this.eatsVeggies = true; this.eatsMeat = false; }

function Herbivore() {}
Herbivore.prototype = new Animal();

function Carnivore() { this.eatsMeat = true; }
Carnivore.prototype = new Animal();

var rabbit = new Herbivore();
var bear = new Carnivore();

console.log(rabbit.eatsMeat);   // logs "false"
console.log(bear.eatsMeat);     // logs "true"

问:在JavaScript中比较和对比对象和HASHTables。

这是一个技巧问题,因为在JavaScript中,物体基本上是Hashtables;即,名称值对的集合。在这些名称 - 值对中,要注意的重要点是名称(A.K.A.,键)始终是字符串。这实际上导致我们下一个问题......

问:考虑下面的代码段(来源)。警报显示是什么?解释你的答案。

var foo = new Object();
var bar = new Object();
var map = new Object();

map[foo] = "foo";
map[bar] = "bar";

alert(map[foo]);  // what will this display??

它是罕见的候选人,谁将正确回答这是警告字符串“栏”。 大多数人都会错误地回答它警告字符串“foo”。所以让我们明白为什么“酒吧”确实是正确的,尽管令人惊讶,回答......

如前所述的答案中所提到的,JavaScript对象本质上是名称 - 值对的哈希特,其中名称(即键)是字符串。他们是 总是 字符串。实际上,当用字符串以外的对象用作JavaScript中的键时,不会发生错误;相反,JavaScript. 默默 将其转换为字符串并使用该值作为密钥。这可能具有令人惊讶的结果,因为上面的代码表现出来。

To understand the above code snippet, one must first recognize that the map object shown does 不是 map the object foo to the string “foo”, nor does it map the object bar to the string “bar”. Since the objects foo and bar are not strings, when they are used as keys for map, JavaScript automatically converts the key values to strings using each object’s toString() method. And since neither foo nor bar defines its own custom toString() method, they both use the same default implementation. That implementation simply generates the literal string “[object Object]” when it is invoked. With this explanation in mind, let’s re-examine the code snippet above, but this time with explanatory comments along the way:

var foo = new Object();
var bar = new Object();
var map = new Object();

map[foo] = "foo";    // --> map["[object Object]"] = "foo";
map[bar] = "bar";    // --> map["[object Object]"] = "bar";
                     // NOTE: second mapping REPLACES first mapping!

alert(map[foo]);     // --> alert(map["[object Object]"]);
                     // and since map["[object Object]"] = "bar",
                     // this will alert "bar", not "foo"!!
                     //    SURPRISE! ;-)

问:解释JavaScript中的封闭。这些是什么?他们的一些独特功能是什么?如何以及为什么可能想要使用它们?提供一个例子。

关闭是一个函数,以及在创建关闭时的范围内的所有变量或函数。在JavaScript中,闭包被实现为“内部功能”;即,在另一个函数的正文中定义的函数。这是一个简单的例子:

(function outerFunc(outerArg) {
  var outerVar = 3;

  (function middleFunc(middleArg) {
    var middleVar = 4;

    (function innerFunc(innerArg) {
      var innerVar = 5;
      // EXAMPLE OF SCOPE IN CLOSURE:
      // Variables from innerFunc, middleFunc, and outerFunc,
      // as well as the global namespace, are ALL in scope here.
      console.log("outerArg="+outerArg+
                  " middleArg="+middleArg+
                  " innerArg="+innerArg+"\n"+
                  " outerVar="+outerVar+
                  " middleVar="+middleVar+
                  " innerVar="+innerVar);
      // --------------- THIS WILL LOG: ---------------
      //    outerArg=123 middleArg=456 innerArg=789
      //    outerVar=3 middleVar=4 innerVar=5
    })(789);
  })(456);
})(123);

闭包的一个重要特征是内部功能仍然可以访问外部功能的变量 外部功能已返回。这是因为,当JavaScript的函数执行时,它们使用生效的范围 当他们创造的时候.

但是,这导致这导致的常见点是基于内部函数在它是内部函数访问外函数变量的值的事实 调用 (而不是当时 创造了)。要测试候选人对此细微差别的理解,请介绍以下代码片段,动态创建五个按钮,并询问用户点击第三个按钮时将显示的内容:

function addButtons(numButtons) {
  for (var i = 0; i < numButtons; i++) {
    var button = document.createElement('input');
    button.type = 'button';
    button.value = 'Button ' + (i + 1);
    button.onclick = function() {
      alert('Button ' + (i + 1) + ' clicked');
    };
    document.body.appendChild(button);
    document.body.appendChild(document.createElement('br'));
  }
}

window.onload = function() { addButtons(5); };

许多人将误认为是在用户点击第三个按钮时将显示“按钮3”按钮3“。实际上,上面的代码包含一个错误(基于误解封闭工作的方式)和“按钮6点击”将在用户点击时显示 任何 五个按钮。这是因为,在onclick方法是 调用 (为了 任何 的 the buttons), the for loop has already completed and the variable i already has a value of 5.

一个重要的后续问题是询问候选人如何修复上述代码中的错误,以便生成预期的行为(即,单击按钮N将显示“按钮N单击”)。正确答案,表明正确使用封闭,如下:

function addButtons(numButtons) {
  for (var i = 0; i < numButtons; i++) {
    var button = document.createElement('input');
    button.type = 'button';
    button.value = 'Button ' + (i + 1);
    // HERE'S THE FIX:
    // Employ the Immediately-Invoked Function Expression (IIFE)
    // pattern to achieve the desired behavior:
    button.onclick = function(buttonIndex) {
      return function() {
        alert('Button ' + (buttonIndex + 1) + ' clicked');
      };
    }(i);
    document.body.appendChild(button);
    document.body.appendChild(document.createElement('br'));
  }
}

window.onload = function() { addButtons(5); };

尽管绝不是JavaScript,但封闭是许多现代JavaScript编程范例的特别有用的构造。它们由一些最受欢迎的JavaScript库(例如jQuery和Node.js)广泛使用

拥抱多样性

javascript.满足了一个异常广泛的编程技术和设计模式。 JavaScript主人将充分意识到选择一种方法与另一个方法的重要性和后果。

多范式语言,JavaScript支持面向对象,命令和功能编程样式。因此,JavaScript适用于一系列异常的编程技术和设计模式。 JavaScript主人将充分意识到这些替代方案的存在,更重要的是,在另一个方面选择一种方法的重要性和后果。以下是一些可以帮助衡量候选人专业知识的这一方案的一些示例问题:

问:描述创建对象的不同方式和每个的后果。提供例子。

下面的图形对比JavaScript中的各种方式来创建对象和来自每个原型链中的原型链中的差异。

Q: Is there ever any practical difference between defining a function as a function expression (e.g., var foo = function(){}) or as a function statement (e.g., function foo(){})? Explain your answer.

是的,基于分配函数的值和何时何时何时何地存在差异。

When a function statement (e.g., function foo(){}) is used, the function foo may be referenced before it has been defined, through a technique known as “hoisting”. A ramification of hoisting is that the last definition of the function is the one that will be employed, regardless of when it is referenced (if that’s not clear, the example code below should help clarify things).

In contrast, when a function expression (e.g., var foo = function(){}) is used, the function foo may not be referenced before it is defined, just like any other assignment statement. Because of this, the most recent definition of the function is the one that will be employed (and accordingly, the definition must precede the reference, or the function will be undefined).

这是一个简单的例子,它展示了两者之间的实际差异。考虑以下代码片段:

function foo() { return 1; }

alert(foo());   // what will this alert?

function foo() { return 2; }

许多JavaScript开发人员将错误地回答上述警报将显示“1”,并会感到惊讶地知道它实际上将显示“2”。如上所述,这是由于提升。由于使用函数语句来定义函数,因此该函数的最后定义是在调用时挂起的最后一个定义(即使它在代码中的调用之后也是如此!)。

现在考虑以下代码片段:

var foo = function() { return 1; }

alert(foo());   // what will this alert?

foo = function() { return 2; }

在这种情况下,答案更直观,警报将按预期显示“1”。由于采用函数表达式来定义该功能,因此该函数的最新定义是在调用时采用的函数的定义。

魔鬼的细节

除了到目前为止讨论的高级JavaScript概念之外,还有许多较低级别的语言句法细节,真正的JavaScript Guru将密切熟悉。这里有一些例子…

问:函数块中的JavaScript源文件的整个内容包装的原因是什么?

这是许多流行的JavaScript库(jQuery,Node.js等)雇用的越来越常见的做法。此技术在文件的整个内容周围创建闭合,或许最重要的是,创建私有命名空间,从而有助于避免不同JavaScript模块和库之间的潜在名称冲突。

Another feature of this technique is to allow for an easily referenceable (presumably shorter) alias for a global variable. This is often used, for example, in jQuery plugins. jQuery allows you to disable the $ reference to the jQuery namespace, using jquery..noConflict(). If this has been done, your code can still use $ employing this closure technique, as follows:

(function($) { /* jQuery plugin code referencing $ */ } )(jQuery);

Q: What is the difference between == and ===? Between != and !==? Give an example.

The difference between “triple” comparison operators (===, !==) and double comparison operators (==, !=) in JavaScript is that double comparison operators perform implicit type conversion on the operands before comparing them whereas, with the triple comparison operators, no type conversion is performed (i.e., the values must be equal and the types must be the same for the operands to be considered equal).

As a simple example, the expression 123 == '123' will evaluate to true, whereas 123 === '123' will evaluate to false.

Q: What is the significance of including 'use strict' at the beginning of a JavaScript source file?

Though there is much more to be said on the topic, the short and most important answer here is that use strict is a way to voluntarily enforce stricter parsing and error handling on your JavaScript code at runtime. Code errors that would otherwise have been ignored or would have failed silently will now generate errors or throw exceptions. In general, it is a good practice.

包起来

javascript.可能是今天存在的最误解和低估的编程语言中的一种。剥离JavaScript洋葱的越多,人们越传播了可能的事情。 JavaScript是足以被前端和后端开发人员使用的多功能。因此,在美国或国外寻找全职或兼职角色的语言的真正大师是一项挑战。我们希望您发现这篇文章中提出的问题是“将小麦从谷壳中分离小麦”,以便在您的开发团队添加最佳JavaScript开发人员中的“精英少数”中的“从谷壳中分离挑剔”。

特色toptal javascript出版物

顶级JavaScript开发人员需求量很高。

开始招聘