Questions tagged «javascript»

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

6
除浏览器以外的JavaScript测试环境?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 5年前关闭。 当我想用JavaScript测试某些东西时,我打开一个新的浏览器窗口(主要是Firefox)并开始在提供的控制台(主要是Firebug)中编写代码。 但是,这往往非常乏味且缓慢。是否存在可以测试JavaScript的环境(例如具有自执行功能的IDE)? 指南:我正在寻找类似jsfiddle的东西,但不在浏览器中,也不在线。我想要一个既离线又不是浏览器的执行环境。 我要问的是拥有像Firebug Console这样的东西作为单独的应用程序(最好是Windows应用程序),可以双击打开它,在其中可以编写JavaScript代码并单击execute。就这样。 简单来说,我想要的只是Firebug的控制台,没有Firefox。市场上有这样的东西吗?
12 javascript 

1
大量使用Ajax的Web应用程序的模式
到目前为止,我一直是开发Web应用程序的MVC模式的忠实拥护者。对于网络,我主要使用PHP(使用Kohana和CodeIgniter框架)和Ruby(RoR)开发。 随着我的应用程序在Ajax方面变得越来越繁重(单页应用程序等),我注意到我不禁出卖了MVC的最基本概念:Java语言正在做大部分工作;调用控制器只是为了请求视图或更多js / json代码似乎是错误的。 在努力将所有路由作业保留在控制器中之后,现在我从根本上将其分配给控制器和Javascript(即,从框架的PoV来看,是视图的一部分)。当请求json时,MVC的转换看起来更加明显:执行请求的js代码是控制器;框架的控制器仅充当模型数据的代理-实际上是我要的。 那么,我应该研究什么? 我当时在考虑使用纯JavaScript应用程序,例如,使用ribs.js和基于文档的JSON吐出数据库(couchDB)作为后端,但是我喜欢我的关系数据库。 另一个选择如下:我只是在PHP / ruby​​ / go / whatnot中创建“路由模型”。这些将分析请求,调用数据库,并返回一些json。 这种方法对我来说似乎很有趣,但是它没有任何实质性的文档或学术分析,因此我有点害怕这种飞跃。 有想法吗?


3
我应该将函数嵌套在允许我执行此操作的语言中还是应该避免使用它?
在JavaScript,PL / SQL和其他一些语言中,函数可以嵌套,即在另一个函数中声明。这可用于将大型功能分解为较小的部分,但将这些部分保留在较大功能的范围内。 function doTooMuch() { function doSomething () { ... } function doSomethingElse() { ... } function doYetAnotherThing() { ... } // doTooMuch body doSomething(); doSomethingElse(); doYetAnotherThing(); } 在某些情况下,当那些较小的函数不使用较大函数的局部变量时,可以很容易地将其更改为所有函数都未嵌套的版本。 function doSomething () { ... } function doSomethingElse() { ... } function doYetAnotherThing() { ... } function doTooMuch() { doSomething(); …

3
在JSON密钥中使用连字符是不好的做法吗?
我看到很多问题都与访问使用连字符(kebab-case)的JSON密钥有关,但是现在我发现自己想知道应该在我的密钥中坚持使用camelCase还是snake_case。我知道连字符在语言之间移植时也会产生复杂的映射。我已经看到一些JSON反序列化库将这些键转换为camelCase样式。 例: var something = { "some-value": 'thing' } VS var something = { "someValue": 'thing', "some_other_value": 'thing_two' }

2
为什么要使用`const foo =()=> {}`而不是`function foo(){}`
例如,在此Redux视频中,讲师始终使用以下语法 const counter = (state=0, action) => { ... function body here } 我只用“传统” function counter(state=0, action) { ... function body here } 实际上,这更短,而且更清晰。在页面的相当平坦且结构化的左侧边缘搜索单词“ function”要比在参差不齐的右侧边缘扫描一个小的“ =>”要容易。 除了之外this,尝试成为客观的而非观点,新语法有没有有用的区别或优势?

3
如何防止用户在其浏览器中编辑我的代码?
描述 我正在设计一个Node.JS应用程序(更像一个完整的网站)。该应用程序将发送五个JavaScript文件,并将具有<script>将它们链接在一起的标签。 题 如何防止用户和攻击者窥视和编辑我的代码? 一个例子是: Ctrl+ Shift+I 在Devtools的 goto Sources中,选择一个文件进行编辑(即index.html)并进行编辑 按Ctrl+ S会导致实时编辑发生 我想防止上述例子的发生...可能吗? 这是我的想法: 我将创建另一个客户端JavaScript文件prevent_keys.js 它将监听Ctrl+ Shift+ I。 如果返回true(即按下了按键),它将log显示按键。 但是,这不会阻止用户直接使用Devtools。

3
在不总是检查属性和方法的情况下,如何在JavaScript中使用鸭子输入?
我知道javascript使用鸭子类型,而且起初我认为与强类型语言(如C#)相比,这会使多态性变得容易。但是现在,我带有参数的函数充满了诸如此类的东西: if(myObj.hasSomeProperty()) 要么 if(myObj.hasSomeMethod()) 要么 if(isNumber(myParam)) 等等 这对我来说真的很丑。我来自C#背景,发现定义的接口要好得多。 我想知道我是否错误地尝试应用在静态类型的语言中有效的策略,并且在javascript中有更好的方法呢? 我知道我无法检查,但是跟踪javascript运行时错误可能是一场噩梦,因为它们并非总是在代码中实际发生错误的地方发生。

2
如今如何模块化和打包客户端Javascript库?
我一直在追赶现代的客户端JS生态系统,并阅读CommonJS和AMD(包括相关工具-browserify,requirejs,onejs,jam等等)。如果我正在编写Javascript库,如何对它进行模块化/打包,以便可以最广泛地访问它(理想情况下,对CommonJS,AMD尤其是两者都不满意的用户)? 像jQuery这样的流行库似乎只是使用老式文件串联来构建自身,并动态检测它是否应该写入exports或全局上下文。我目前正在做同样的事情,但是主要的缺点是,如果我(与jQuery不同)依赖于一些库,那么不必要求用户手动预先包含传递集就很好了。(尽管我目前只有两个依赖项。)当然还有全局名称空间污染。 还是为每个上下文生成我的库的多个版本是最干净的? 我也想知道打包和发布。有几种系统,但是我相信主要的系统是bower,它很容易处理,因为它所做的只是获取。但是,我想知道是否也应该针对其他组件系统,例如component(需要CommonJS)。 我还应该注意其他相关方面吗?是否有所有这些都可以遵循的良好示例项目?

5
计算函数是否纯函数
根据维基百科: 在计算机编程中,如果关于函数的以下两个语句均成立,则函数可以描述为纯函数:在给定相同的参数值的情况下,函数始终求值相同的结果值。函数结果值不能依赖于任何隐藏的信息或状态,这些信息或状态可能随着程序执行的进行或程序的不同执行之间的变化而变化,也不能依赖于I / O设备的任何外部输入。结果评估不会引起任何语义上可观察到的副作用或输出,例如可变对象的突变或输出到I / O设备。 我想知道是否有可能编写一个可以计算一个函数是否纯净的函数。JavaScript中的示例代码: function sum(a,b) { return a+b; } function say(x){ console.log(x); } isPure(sum) // True isPure(say) // False

4
对于像Dart这样可编译为其他语言的语言,GPL如何运作?
除了特殊的Chromium版本Dartium之外,任何Web浏览器均不支持Google Dart语言。要将Dart用于生产代码,您需要通过Dart-> JavaScript编译器/翻译器运行它,然后在Web应用程序中使用输出的JavaScript。 因为JavaScript是一种解释型语言,所以每个接收“二进制”(也称为.js文件)的人也都收到了源代码。 现在,GNU通用公共许可证v3.0指出: “作品的“源代码”是指对作品进行修改的首选形式。” 这意味着除JavaScript代码外,还必须将原始Dart代码提供给最终用户。这是否意味着即使已经以人类可读/可写/可修改的形式提供了源代码的副本,但任何用Dart编写的Web应用程序也必须向其网站的所有访问者提供原始Dart代码?

2
对于服务器端沙盒脚本,我有哪些选择?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我正在建立一个公共网站,用户可以在其中共享数据和脚本以运行某些数据。该脚本在某种沙箱中在服务器端运行,而在此周期中没有其他交互:我的Perl程序从数据库中读取用户制作的脚本,将要处理的数据添加到脚本中(即JSON文档),然后调用解释器,返回响应(JSON文档或纯文本),我使用perl脚本将其保存到数据库。该脚本应该可以自己访问添加到脚本语言中的内置函数,但是仅此而已。 因此,我偶然发现了node.js作为一个JavaScript解释器,大约一个小时前就使用了Google的V8(v8对这种事情有意义吗?)。我也想到了CoffeeScript,因为它看起来不错并且仍然是Javascript。 我认为javascript足够广泛并且更易于“沙盒化”,因为它没有操作系统调用或任何远程不安全的东西(我认为)。 顺便说一句,我在Perl和Php上为前端编写系统。 为了改善这个问题:我之所以选择Javascript,是因为我认为可以使用node.js来实现它既安全又简单,但是实现这种任务还有哪些其他选择呢??蟒蛇?我只是找不到有关如何以适当方式运行沙盒解释器的信息。

3
是否存在针对多个浏览器选项卡和较新浏览器的客户端状态的开源JavaScript库?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 5年前关闭。 HTML5有一些新功能,使其成为最近的浏览器,允许在选项卡,浏览器窗口,相同的域窗口等之间共享状态。因此,编写在Web上保持很多状态的Web应用程序可能会变得容易一些。客户端,并且还可以智能地管理选项卡和/或窗口之间的状态。 当前有诸如Backbone.js之类的库,可以帮助管理单个选项卡或单个窗口中的状态。是否有任何东西可以帮助多个选项卡(或窗口)管理全局状态,特定于选项卡的状态以及交叉表事件,而无需依赖服务器来同步它们?

6
如何编写HTML,CSS和JavaScript,以使后端开发人员的工作更轻松?
从设计师那里获得设计时,我将其作为PSD(Photoshop)文件获得。我一直期望适当的层和文件夹名称,基本上是干净且托管的PSD。通过这种设计,我开发了HTML,CSS和JavaScript,并将其交付给后端开发人员。为了使他们易于理解,我 编写语义代码, 将JavaScript和CSS保存在外部文件中, 在HTML,CSS和JS文件中添加有用的注释, 使用CSS精灵(尽管开发人员不喜欢它), 使用HTML5样板, 将jQuery用于JavaScript, 尽可能尝试使用新的HTML5标签和CSS3,以及 发送了一个包含HTML,CSS,JS和图像的Zip文件。 我希望,如果需要对布局进行一些小的更改,则开发人员可以处理。 我想从后端开发人员和其他CSS忍者那里听到,在文件的组织和标记方面,还有更多人可以做些什么,以使与后端系统(例如,后端技术,PHP,.NET)的集成更容易,Ruby等)。不同的客户端使用不同的系统。
11 javascript  html  css  jquery 

5
当可以通过Java脚本或CSS完成任务时,使用CSS更好吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 我总是尽可能多地使用CSS来否决JavaScript。 即我使用CSS而不是JavaScript创建选项卡和过渡按钮。 我已经看到了一些支持JavaScript的解决方案,特别是Wt Web框架。但如果浏览器不支持/禁用js,则可以降级到CSS。 我知道CSS和JavaScript具有不同的用途,但是有重叠之处。这是这个问题的源泉。 是否应该继续通过JavaScript继续使用CSS?
11 javascript  css 

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.