Questions tagged «javascript»

JavaScript(不要与Java混淆)是一种高级,动态,多范式,弱类型的语言,用于客户端脚本和服务器端脚本。使用此标记可解决有关ECMAScript,JavaScript,JScript等的常见实现的问题。JS通常不引用其ECMA-表兄弟ActionScript。

9
羞于承认使用jQuery?[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以当前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 8年前关闭。 此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 8年前。 在过去的几周中,我注意到的事情是,有许多大型商业网站使用jQuery并结合了许多插件-但不要承认。他们会将主库以及插件重命名为晦涩难懂的名称。甚至有一些人甚至会删除包含MIT / GPL许可证信息的注释。(今天才注意到odeon.co.uk已经做到了这一点) 他们为什么要这样做?面对使用免费开放源代码库的面孔感到惊讶吗?

5
是否仅针对错误情况拒绝承诺?
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 3年前。 假设我有此函数authenticate可以返回承诺。然后,诺言就会解决结果。如我所见,假和真是预期的结果,并且拒绝仅应在错误情况下发生。或者,是否认为身份验证失败会导致您无法兑现承诺?
25 javascript 

1
Vanilla JS是否仍被视为库?
最近,我发现VanillaJS(文档?)是一个仅与99%的浏览器捆绑在一起的库,并且不完全是本机JavaScript(我一生的震惊)。在编写自己的库时,我通常会避免所有有用的事情,主要是库。现在我有三个问题: VanillaJS仍然被认为是库吗? 没有VanillaJS,有没有办法对DOM做任何事情? 是基于VanillaJS或本地JS的主要库(无文档资料)

1
关于DOM的一些说明
我一直在尝试了解DOM,尽管我对DOM有一个很清楚的了解,但是有些想法我无法确定。我将列出我认为的DOM,而我的问题将是内联的。 DOM是网页的完全面向对象的表示形式。W3C DOM标准构成了在大多数现代浏览器中实现的DOM的基础。 那么,DOM是否讨论了如何将XML / HTML文档表示为对象模型? DOM没有指定必须将文档实现为树或树林,也没有指定如何实现对象之间的关系。 可以通过其他什么方式表示文档? 当你做这样的事情- document.write('welcome to my home page!'); 文档对象由DOM提供。写方法是DOM向JavaScript公开的接口。 因此,这些对象及其方法由DOM解析器创建为JavaScript对象,然后呈现给JavaScript引擎?还是DOM解析引擎中的对象和方法使用自己的母语?并且暴露给JavaScript引擎?如果是这样,那么负责从JavaScript到本地语言的翻译是什么? 什么是语言绑定? 语言绑定是所讨论语言的本机对象集合,用于实现DOM规范中的每个接口。 开发人员只需遵循DOM规范中的IDL(接口定义语言),就可以创建从DOM到其语言的语言绑定。 因此,如果DOM解析引擎是用C ++实现的,这是否意味着当您遵循IDL创建语言绑定时,是否只是在使用特定语言(即DOM解析引擎所构建的C ++)创建对象?
25 javascript  dom 

1
盒子模型:Internet Explorer与W3C
如今,Internet Explorer的“盒子模型”问题基本上已不再存在。大多数Web开发人员都放置一个<!DOCTYPE>标签来强制遵守标准,并且没有人真正在乎不再支持Internet Explorer 5.5。 但是,一些开发人员提出了主观的,概念性的观点来捍卫IE盒模型。他们声称IE盒子模型比W3C模型更“直观”,因为W3C模型可以测量盒子的内容,而IE模型可以测量盒子本身: 我可以看到他们的观点,但这基本上是一个主观论点,最重要的是符合标准。 但是,由于严重的实际原因,最近我更喜欢IE盒模型。W3C盒模型使将元素动态调整为另一个元素的确切屏幕上像素宽度变得困难。原因是style.width元素的属性未考虑元素在屏幕上的总大小:您还需要考虑任何其他边框和填充。如果两个元素都使用相同的CSS类,这不是问题-但是,如果它们具有不同的 CSS类,这将变得非常困难。 假设我们有两个div:A和B。A在html中硬编码为400px div,而B使用Javascript动态创建。在视觉上,我们希望B为A的确切宽度。在旧的IE Box模型下,这是微不足道的。我们简单地说:B.style.width = A.style.width甚至B.style.width = A.offsetWidth + "px"。 但是对于W3C盒式模型,这并不是那么简单。现在,我们还必须担心样式表。如果B与A具有相同的CSS类,我们可以说B.style.width = A.style.width。但是,如果不这样做,并且出于审美原因,我们可能不希望这样做,那么我们就有麻烦了。现在我们必须考虑A和B的边框和填充中的总像素。如果边框和填充以不一致的单位指定(由于边框通常为1px线,而边框通常是1px线,则这是常见的情况)可能在ems中指定)。然后,我们面临着转换为通用单位(em到px或px到em)的准不可能完成的任务。所有这些只是为了使两个div完全在屏幕上对齐。 因此,基本上,W3C盒子模型迫使我们在设置元素大小时考虑CSS边框和填充问题,而IE盒子模型则没有,因为宽度测量的是整个盒子的大小(尾到-end),而不是包装盒中的内容。这使得相对于元素动态调整大小变得容易得多。 所有这些似乎是一个非常有力的理由,而不是W3C模型来支持IE盒模型(至少从概念上讲-当然,实际上IE盒模型已经失效)。 问题:W3C为什么选择此盒型?我根本没有看到W3C盒模型的一些优点吗?还是我只是在这里夸大问题?

1
Java中的模块需求与依赖注入
这些天来,我脑海中浮现出一个问题: 我们的Javascript方法是否与传统软件开发中被认为是好的做法的几乎所有东西背道而驰? 我有一系列与此陈述有关的问题/意见,但是为了遵守StackExchange的格式,将它们分成不同的问题会更好。 模块要求 如今的标准Javascript代码如下所示: const someModule = require('./someModule') module.exports = function doSomethingWithRequest() { // do stuff someModule.someFunc() // do other stuff } 好处 封装:模块独立工作,并且知道执行其功能所需的一切。 作为一种颜色,客户可以更轻松地使用该模块。 缺点 可测试性差:在不使用DI时这是标准配置,但在动态语言(例如Javscript)中,可以通过* mockery或模块来规避* rewire。 它确实违反了DIP-请勿与依赖注入混淆。-因为我只能导入具体模块。 它可能违反了OCP-例如,假设我有一个日志模块(通过fs模块)写入文件系统。如果我想扩展此日志模块以将其发送到网络,那将非常困难。 *这可能与CommonJS甚至AMD模块一起使用,因为它们大部分是在用户领域实现的。但是,我不确定使用ES6 import语法怎么可能。 依赖注入 使用依赖注入,它将更像是: module.exports = function doSomethingWithRequest(someModule) { // do stuff someModule.someFunc() // do other stuff } …

3
对node.js的新手来说,使用回调比事件有什么好处?
我是JavaScript新手,对V8引擎内部发生的事情一无所知。 话虽这么说,我真的很喜欢在node.js环境中的早期尝试,但是我发现自己一直在使用events.EventEmitter()作为发出全局事件的一种方式,以便我可以构造程序以适应通知者-观察者模式类似于我将要写的Objective-C或Python程序。 我发现自己一直在做这样的事情: var events = require('events'); var eventCenter = new events.EventEmitter(); eventCenter.on('init', function() { var greeting = 'Hello World!'; console.log('We're in the init function!); eventCenter.emit('secondFunction', greeting); }); eventCenter.on('secondFunction', function(greeting) { console.log('We're in the second function!); console.log(greeting); eventCenter.emit('nextFunction'); }); eventCenter.on('nextFunction', function { /* do stuff */ }); eventCenter.emit('init'); 因此,实际上,我只是将“异步” node.js代码结构化为按预期顺序执行操作的代码,如果可以的话,我有点“向后编码”。在性能上或哲学上以大量回调的方式执行此操作会有所区别吗?使用回调而不是事件来做相同的事情更好吗?

5
性能:JavaScript中的递归与迭代
我最近阅读了一些有关Javascript的功能方面以及Scheme与Javascript之间关系的文章(例如http://dailyjs.com/2012/09/14/functional-programming/)(后者受前者的影响,是一种功能性语言,而OO方面则继承自Self(一种基于原型的语言)。 但是我的问题更具体:我想知道是否有关于Java递归与迭代性能的指标。 我知道在某些语言中(通过设计迭代执行得更好),差异很小,因为解释器/编译器将递归转换为迭代,但是我猜可能不是Javascript的情况,因为它至少部分是功能语言。

4
为什么用coffeescript而不是javascript?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我认为以某种方式构建一种可编译为另一种语言的语言从一开始就是一个坏主意,而不是从一开始就正确地学习javascript。查看道格拉斯·克罗克福德的好零件,然后您就迷上了。而且javascript并不难-无论语言如何,编写好的代码都很难!如果您使用javascript编写糟糕的代码,则可能会用coffeescript或lattescript编写糟糕的代码,或者今天的风格。并说coffeescript语法很漂亮,这让我感动。我喜欢花括号和C语法-最好使用类似这样的语言(对不起,VB!)。再有更多的玩具,语言和框架可以一遍又一遍地做同样的事情,这对我来说不再是进步!
24 javascript 

11
在jQuery之前学习JavaScript有多必要?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 在我看来,当我查看JavaScript时,看起来好像不是我的茶。当我遇到jQuery时,我很喜欢它。一年后,我坐着看了15天的Nettuts + jQuery截屏视频,现在我相当有信心,如果不包括jQuery的库,我不会开发一个网站。 我从来没有感觉到这让我退缩,但是我的问题是,有一天会回来并咬我,这是因为我没有坚实的JavaScript基础,但是在踏入最优秀的JavaScript之一之前(如果不是最好的)框架?还有其他人采用这种方法吗?

4
当我有JSON时,Odata有什么需求?
我试图了解Odata的意义以及何时才有意义。现在,我的工作方式是使用ASP.NET和MVC / WebApi控制器将对象序列化/反序列化为JSON,并让javascript对其进行处理。 据我所知,OData的优点是能够直接从URL查询...但是由于我正在编写客户端和服务器代码,因此不需要这样做。 有人会用JavaScript解析ODaya查询的结果吗? 也许OData更多地是为所有客户端提供通用终结点,以便从JSON不提供的查询中获取详细信息?因此,如果我是数据提供者,那么我想那是odata的作用吗? 帮助我了解REST / JSON / ODATA的目的和用途。
23 javascript  rest  json 

6
UML类图是否足以设计JavaScript系统?
鉴于UML面向面向对象的更为经典的方法,它仍然可以以可靠的方式用于设计JavaScript系统吗? 我可以看到的一个具体问题是,实际上,类图是系统的结构化视图,而JavaScript是更多由行为驱动的,那么如何处理呢? 请记住,我在这里不是在谈论真实世界;这是我要实现的解决方案的模型。

2
关于在我的网站上使用的双重许可(MIT / GPL)JavaScript的困惑
我已经阅读了所有可以找到的帖子,但仍不确定答案。 我想在我的网站上使用jQuery插件,该插件在MIT和GPL下获得了双重许可。 双重许可是否意味着只要一个或另一个满足我就可以了,还是必须两者兼而有之? 我已经读到,在某人的浏览器上加载的GPL javascript不会算作重新分发,因此,我不必在我的网站的其余部分使用GPL许可证(提供源代码)。这是真的? 我的搭档认为我应该完全删除版权并更改变量名称,因为这将在商业网站上进行。这是道德的吗?我尊重花时间编写代码的人。我应该联系他们,看看该插件是否可以通过商业许可获得? 预先非常感谢您帮助澄清。因为这是我的第一个网站,所以我认为问这些问题比在黑暗中开枪更好。

10
进行大量现代JavaScript开发的良好资源和工具?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 5年前关闭。 我对做一些涉及大量使用JavaScript的项目感兴趣。即基于HTML5的画布游戏,也可能使用node.js。我对学习JavaScript的现代最佳实践,工具和资源感兴趣。 JavaScript很难研究,因为您最终会涉足很多真正过时的材料,而源于“ JavaScript”是一个四个字母的单词。 如果您大量参与JavaScript编程... 您使用什么文本编辑器或IDE? 您使用什么单元测试框架? 您使用硒还是其他? 您还使用其他哪些工具? 有哪些社区讨论JavaScript的最新出现? 您读/参考哪些书? 您读什么博客?

3
为什么这么多语言将以0开头的数字视为八进制?
我读过八进制在哪里有用?八进制似乎曾经是有用的。 许多语言将以0开头的数字视为八进制,因此文字010实际上是8。其中一些是JavaScript,Python(2.7)和Ruby。 但是我真的不明白为什么这些语言需要八进制,尤其是当这种符号更可能的用法是表示带有多余0的十进制数字时。 JavaScript是一种客户端语言,八进制似乎毫无用处。从其他意义上讲,这三个都相当现代,我认为不会有太多使用八进制表示法的代码通过删除此“功能”而被破坏。 因此,我的问题是: 这些语言是否支持八进制文字? 如果八进制文字是必需的,为什么不使用类似0o10?为什么要复制覆盖更有用用例的旧符号?

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.