什么是VanillaJS?


688

我有一个简单的问题,几天后就一直想起:什么是VanillaJS?有人将其称为框架,可以从官方页面下载库。

但是,当我检查一些示例或TodoMVC时,它们仅使用经典的原始JavaScript函数,甚至没有包括官方页面或任何其他内容中的库。官方网页上的“文档”链接也指向Mozilla JavaScript规范。

我的问题是:VanillaJS是原始JavaScript吗?如果是的话,当您所需要的只是没有任何特殊脚本的浏览器时,为什么人们将其称为“框架”?

对于一个可能很愚蠢的问题,我感到抱歉,但是我不知道人们说“ VanillaJS”时在谈论什么。


245
VanillaJS是常规Javascript。那是个玩笑。
尼尔森

30
vanilla-js.com(下载该库,勾选所有选项,并查看源代码以了解其工作方式)
澳洲航空94年重型汽车

35
就像香草冰淇淋基本上是普通的一样,在很多of语中,“香草”意味着“无聊或无聊”
TecBrat 2013年

21
“最终大小:0字节未压缩,25字节压缩。” 爱它:O)
cronvel

23
真正令人沮丧的是,它在工作规格上显示为VanillaJS-很可惜,招聘人员对他们所招聘职位的了解很少。
菲尔·莱洛,2016年

Answers:


582

这是VanillaJS(未修改):

// VanillaJS v1.0
// Released into the Public Domain
// Your code goes here:

如您所见,它实际上不是框架或库。对于喜欢框架的老板或认为您需要使用JS框架的人来说,这只是一个小插曲。这意味着您仅使用您的浏览器(出于您自己的考虑:非传统)提供的任何功能(在使用旧版浏览器时使用Vanilla JS是个坏主意)。


33
因此,当您看到社区Wiki获得投票时,您决定删除并重新发布它吗?
蓝天

22
@BlueSkies:否。最初只是代码块的第一部分。即一个“有趣”的答案。这就是为什么我要这么做。然后,我决定将其变成一个正确的答案,因为OP似乎已经提出了一个合法的问题,应该予以正确回答。
ThiefMaster

4
好吧,当一个人说某事是一个“坏主意”时,一个人表达的观点不一定是正确的。
蓝天

13
仅供参考:Vanilla JS现在为0字节,压缩为25字节。
2015年

8
@BlueSkies:“普通(“香草”)JS在使用旧版浏览器时不好,这不是事实,这是事实。这就是发明jQuery之类的框架和其他框架的原因:在处理浏览器不兼容问题时简化您的生活!:) Vanilla JS于2016年问世的唯一原因是,大多数现代浏览器现在比过去更加符合标准,因此您需要的框架越来越少(尤其是如果您是JavaScript专家的话)。
Sorin Postelnicu

371

使用“ VanillaJS”意味着使用纯JavaScript而不使用jQuery之类的任何其他库。

人们以此为笑话来提醒其他开发人员,如今无需其他JavaScript库即可完成许多工作。

这是一个有趣的网站,开玩笑地谈论了这一点:http : //vanilla-js.com/


3
vanilla-js.com网站真的很有趣:)关于VaniliaJs的很多很好的信息
Mohammad Kermani

74

VanillaJS是库/框架免费javascript的术语。

它有时具有讽刺意味地被称为库,这是为那些可能会盲目使用不同框架(尤其是jQuery)的人们开的玩笑。

到目前为止,有些人已经发布了该库,通常使用一个空的或仅注释的js文件。


5
OTOH我喜欢浏览器的可移植性和简洁高效的语法。jQuery给了我,通常来说,这是一个非常好的设计选择-比依赖VanillaLongwindedAndBrowserIncompatible-JS更好。
Thomas W

当然。使用jQuery没有错。只是在讲笑话背后的心态,而不是赞同它。现在澄清措辞。
本麦考密克

3
@ThomasW我也喜欢可移植性和简洁高效的语法。这就是为什么我要编写function doSomething(args) { ... }代码,然后用doSomething比jQuery更少的代码编写代码的原因。;)
Niet the Dark Absol 2014年

4
太好了,如果您不必处理现实世界中的DOM或浏览器问题。大多数构建Web应用程序的人都可以。DOM操纵和浏览器可移植性是问题所在,为此发明了jQuery(在Prototype.js上进行了改进)。我同意@NiettheDarkAbsol的观点,即对于纯算法代码jQuery不相关。
Thomas W

@ThomasW“实际的DOM或浏览器问题”会在IE 9和更高版本中引起巨大的问题吗?据我所知,大多数所说的问题与IE 8及更早版本有关。当您写评论时,不支持XP上的IE,并且由于Microsoft仅支持每个操作系统可用的最新IE,因此不再支持Windows Vista和Windows 7上的IE 8。
达米安·埃里克

49

对于那些对JavaScript框架感到兴奋而又不了解纯Javascript的人来说,这是个笑话

因此 VanillaJS 与纯Javascript相同

香草俚语手段:

平淡无奇,正常,常规,无聊

这是YouTube上有关VanillaJS的精彩演讲:什么是Vanilla JS?


3
这实际上只是一个愚蠢的笑话,对新手来说非常混乱。显而易见,前端工程师喜欢使水混浊,因此他们似乎比下一个人了解更多。
林戈

1
@Ringo只不过是需要对法国文化有深入了解才能理解的法国笑话,目的是使告诉他们的人比其他人更了解。人们可能会使用一些“开玩笑”来排除其他人,但这并不是一个很好的假设,尤其是当他们在被问到时能够快速解释时。
罗伊·廷克

45

简单而简单的答案是肯定的,正如B. Eich博士所规定的,VanillaJS === JavaScript。


17
甚至Object.is(VanillaJS,JavaScript),当然也包括IE。
user2345215 2015年

44

VanillaJS === JavaScript,VanillaJS是本机JavaScript

为什么, 香草说完了!!!

如果未按原始形式进行自定义,则计算机软件,有时还会与其他与计算相关的系统(如计算机硬件或算法)一起被称为“香草”,这意味着它们在未经过任何自定义或更新的情况下使用(请参阅本文)。因此,香草常指纯净或纯净。

在英语中,香草具有相似的含义;在信息技术中,香草(发音为vah-NIHL-uh)是一个形容词,意思是普通或基础。或者没有特殊或额外的功能普通或标准

那么,为什么要命名为VanillaJS?正如公认的答案所说的那样,有些老板想使用一个框架(因为它更具组织性和灵活性,并且可以完成我们想要的所有事情?),但是JavaScript可以完成工作。但是,您需要在某个地方添加框架。使用VanillaJS ...

这是个玩笑吗?是

想要一些乐趣吗? 在哪里可以找到它,http://vanilla-js.com/ 下载并亲自查看!!!0 bytes uncompressed, 25 bytes gzipped:D

发现这个双关语关于JS框架互联网上(不是谴责,虽然,他们就会使生活很容易:)现有的JS框架) 在此处输入图片说明

另请参阅


1
在vanilla js中尝试2.2 * 100:D
Suhail Mumtaz Awan

5

“香草JS”是一个讽刺的网站在2012年出版后,得到了流行的表达(http://vanilla-js.com/)。有覆盖它的故事节/意在这篇文章

那么为什么开玩笑呢?这是对依靠jQuery和其他JS库的老式弯管反应的现代回应。借助ECMAScript规范和现代的浏览器功能,不再需要使用外部库绕过普通JS来保持跨浏览器的一致性。这是一个通过具体示例向您展示这是多么真实的网站:http: //youmightnotneedjdj.com/


1

因此,这个词VanillaJS只是一个可恶的笑话,改变了我的生活。我去过一家德国公司进行面试,当时我很穷,JavaScript而且CSS很穷,所以采访者对我说:我们正在与VanillaJs合作,所以您应该知道这个框架

绝对,我知道我被拒绝了,但是一个星期我一直在寻找VanillaJS,毕竟,我找到了THIS LINK。😂

我只是因为那个玩笑。

VanillaJS === plain `JavaScript`

1
我知道香草JS都是个玩笑
rodude123 '18

0

完全没有区别,VanillaJS只是引用本机(非扩展和基于标准的)JavaScript的一种方法。一般来说,使用jQuery和React之类的库和框架时,这是一个对比术语。网站www.vanilla-js.com只是在开玩笑地强调它,就像说回话一样,VanillaJS它是一个快速,轻量级且跨平台的框架。浑水!因此,这可能是一个哲学问题:“在JavaScript没有VanillaJS自己的情况下,我有多少东西可以编译为Vanilla ?” 因此,一个简单的指导方针是:如果您可以编写代码并在没有附加工具或所谓的编译步骤的情况下,在任何当前的Web浏览器中运行代码,则可能是VanillaJS

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.