草庐IT

SDUT-编译原理-小codeblocks

全部标签

javascript - typescript 编译器错误 TS2307 : Cannot find module 'jquery'

我正在关注JSPM入门guide我想安装jquery包,所以我执行下面的命令。jspm安装jquery但是当我尝试像下面这样用typescript导入它时从“jquery”导入$我从typescript编译器中收到一个错误,提示errorTS2307:Cannotfindmodule'jquery'。不仅对于这个库,对于其他库我也遇到同样的错误。 最佳答案 您需要在编译上下文中包含jquery的类型定义,您可以从https://github.com/DefinitelyTyped/DefinitelyTyped中获取它们

JavaScript - Greasemonkey 的工作原理

我读了2005年写的“DiveintoGreasemonkey”(作者MarkPilgrim)。它提到Greasemonkey将用户脚本包装在匿名函数包装器中。Greasemonkey是否将包装器插入源JavaScript代码或将其添加为任何事件处理程序,例如window.onload? 最佳答案 DoesGreasemonkeyinsertthewrapperintothesourceJavaScriptcodeoradditasanyeventhandlersuchaswindow.onload?GM监听DOMContentLo

javascript - Chrome 扩展程序中的 Wasm 模块编译错误

在我的扩展中,我想使用我自己的WebAssembly模块。加载我的模块后(到background.html或popup.html),我发现了编译错误:CompileError:WebAssembly.compile():Wasmcodegenerationdisallowedbyembedder.Chrome扩展是否不支持wasm模块? 最佳答案 似乎来自thisissueChrome需要script-src:'unsafe-eval'CSP指令对WebAssembly编译有效。参见thisdiscussion至于为什么会这样,至少

javascript - innerHTML 的内部工作原理

我试图反复更改Id的innerHTML,例如:document.getElementById("test").innerHTML+=""和document.getElementById("test").innerHTML+=""+blahblah+""但我发现它不一定按顺序排列我的标签。当然,这个方法很糟糕,我只是更改了所有内容以继续添加到一个字符串,我在最后将其分配给Id的innerHTML。我的问题是:innerHTML对我插入的标签到底做了什么,它是确定性的,它是特定于浏览器的吗? 最佳答案 根据我的经验,大多数情况下,浏览器

javascript - Scala 到 JavaScript 的编译有效吗?

我刚刚读到有关java2javascriptparser的信息和scala的演示。您对这个框架有任何经验吗?性能怎么样?我可以使用现有的JS代码/框架吗?感谢任何帮助。编辑这是一个非常好的scala到javascript的交叉编译器:https://www.scala-js.org/ 最佳答案 我一年多前就这样做了。性能还可以,但代码量往往很大。我不会推荐它用于生产,但如果有用的话可以放弃代码。还有其他努力在浏览器上运行Scala。最好的办法是为现有的Scala编译器创建一个JavaScript后端。以下是一些其他需要关注的项目:h

javascript - 如何在编译时在 javascript 全局命名空间中定义一个 clojurescript 函数?

我正在寻找一种在编译时在Javascript全局命名空间中定义Clojurescript函数的方法。我所说的编译时是指我希望Clojurescript编译器输出:functionsome_fn(){}。我知道这不是惯用的,一切都应该驻留在命名空间中,但我所处的环境迫使我这样做。因此,理想情况下,类似于(defn^:globalsome-fn[])的工作方式类似于:export的工作方式,但忽略了namespace。我知道使用goog.global定义全局函数的运行时方法,例如(set!goog.global.someFunctionsome-clojure-fn)但这在我的环境中不起作

javascript - 如何禁用 V8 的优化编译器

我正在编写一个恒定时间的字符串比较函数(用于node.js),并且想为这个单一函数禁用V8的优化编译器;使用命令行标志是不可能的。我知道使用with{}(或try/catch)block将禁用优化编译器现在,但我担心这个“功能”(bug)将在未来的版本中修复。是否有一种不可变的(并记录在案的)方法来禁用V8的优化编译器?示例函数:functionconstantTimeStringCompare(a,b){//Byaddinga`with`blockhere,wedisablev8'soptimizingcompiler.//UsingObject.create(null)ensure

javascript - 在不转换异步函数的情况下编译 typescript

有没有办法只使用TypeScript编译器来删除类型注释,而不是转译异步函数?像{target:'esInfinite'}选项之类的东西?原因是:有些浏览器已经支持异步功能,所以我希望有一个不影响这些功能的构建目标。示例输入:asyncfunctionfoo(a:number):Promise{}示例输出:asyncfunctionfoo(a){} 最佳答案 在您的tsconfig.json中,将您的目标更改为ES2017,然后它将保留async/await。{"compilerOptions":{....."target":"ES

javascript - 当一个是 bool 值时,为什么 JavaScript 在 == 运算符比较中将原始值转换为数字的基本原理?

我知道规则:Ifthetwooperandsarenotofthesametype,JavaScriptconvertstheoperandsthenappliesstrictcomparison.Ifeitheroperandisanumberoraboolean,theoperandsareconvertedtonumbersifpossible;elseifeitheroperandisastring,theotheroperandisconvertedtoastringifpossible.所以,if("true")通过但if("true"==true)失败,因为它的句柄类似于

javascript - 为什么 CoffeeScript 会这样编译一个 for 循环?

这段CoffeeScript:foriin[1..10]console.logi编译为:for(i=_i=1;_i我不明白为什么它不直接使用i。有什么想法吗? 最佳答案 我对CoffeeScript不是很熟悉,但我猜这是为了防止在循环中修改i变量。例如:foriin[1..10]console.logii=7可能产生了这段代码for(i=1;i这显然会产生一个无限循环。然而,CoffeeScript的版本意味着会发生这种情况:for(i=_i=1;_i由于_i的存在,循环不再是无限的,以跟踪循环中的位置。