这些是我的示例文件:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<script src="t1.js"></script>
</head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud)
t1.js:
import Test from 't2.js';
Run Code Online (Sandbox Code Playgroud)
t2.js:
export const Test = console.log("Hello world");
Run Code Online (Sandbox Code Playgroud)
当我在Firefox 46中加载页面时,它返回"SyntaxError:import declarations可能只出现在模块的顶层" - 但我不确定import语句可以在这里获得多少顶级.此错误是否为红色鲱鱼,导入/导出是否尚不支持?
我有一个类如下:
const Module = {
Example: class {
constructor(a) {
this.a = a;
}
static fromString(s) {
// parsing code
return new Module.Example(a);
}
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,这是有效的,但通过全局名称访问当前的类构造函数Module.Example
是一种丑陋和容易破坏.
在PHP中,我会使用new self()
或者new static()
在这里引用定义静态方法的类.在Javascript中是否有类似这样的东西不依赖于全局范围?
我正在尝试在CSS类选择器中实现此W3字符转义的描述.
我遇到了在abc\20 def
转义序列之后放置空格的语法问题,以确保def
不会被误读为字符代码的一部分.
具体来说,尝试放入abc\XY def
HTML类属性或类似命令jQuery().addClass('abc\\20 def')
(\\
这里是JS字符串文字语法的一部分;字符串值本身有一个斜杠)将赋予元素两个类,abc\20
和def
.
这种语法是不是很难实现,我应该坚持使用六位数的前导零形式?或者该文档仅引用CSS代码中的转义格式,HTML属性/ jQuery参数需要一些不同形式的转义空格字符?
编辑:非常感谢大家的解释!
我现在明白这种语法只适用于CSS代码 - 而不是HTML属性或Javascript中设置的类名本身.
这也意味着指定为空格的字符不能出现在CSS类值中,并且没有任何类型的转义机制允许它们被添加.(具体来说,如果我理解正确的话,CSS选择器.abc\20 def
是有效的并且选择具有类的元素abc def
,但是没有意义,因为没有元素可以拥有这个类.)
对于我的具体用例,它涉及将任意值(可以有空格)映射到有效的类名,我需要定义自己的转义方案.用-
或替换空格_
(感谢Praveen)是一种可能性; 如果映射需要一对一,则用六位数的Unicode十六进制值替换它们(例如,它"abc def" -> "abc\000020def"
是一个更强大的值).
要记住的重要一点是,这个替换会影响类名本身 - 要abc\000020def
在CSS中引用类,必须再次转义反斜杠,以形成选择器.abc\\000020def
.
我正在尝试编写一种天真寻找布尔公式(NNF,但不是CNF)模型的算法.
我所拥有的代码可以检查一个现有的模型,但是当被要求查找模型时它会失败(或者没有完成),似乎因为它产生了无数的解决方案member(X, Y)
.[X|_], [_,X|_], [_,_,X|_]...
到目前为止我所拥有的是:
:- op(100, fy, ~).
:- op(200, xfx, /\).
:- op(200, xfx, \/).
:- op(300, xfx, =>).
:- op(300, xfx, <=>).
formula(X) :- atom(X).
formula(~X) :- formula(X).
formula(X /\ Y) :- formula(X), formula(Y).
formula(X \/ Y) :- formula(X), formula(Y).
formula(X => Y) :- formula(X), formula(Y).
formula(X <=> Y) :- formula(X), formula(Y).
model(1, _).
model(X, F) :- atom(X), member([X, 1], F).
model(~X, F) :- atom(X), member([X, 0], F). % NNF
model(A /\ B, …
Run Code Online (Sandbox Code Playgroud) 有几种解决方案可以将数据blob保存到浏览器环境中的文件中.我通常使用FileSaver.js.
但是,在这种特殊情况下,我的数据来自websocket流,并且生成的文件可能如此之大(数百MB),在内存中连接它确实会导致性能下降.
是否可以打开一个数据可以写入的流?
websocket是XMPP连接.使用SI文件传输(XEP-0096)协议通过流启动(XEP-0095)协商文件传输 ; 然后通过带内字节流(XEP-0047)传输数据.
基本上,Web应用程序以4064字节的base64编码块获取数据,我想知道是否有任何方法让用户在收到所有数据之前保存文件.
我想定义一个检查堆栈结尾的快捷方法.
以下适用于Firefox:
const Stack = class extends Array {
last() {
return this[this.length - 1];
}
}
Run Code Online (Sandbox Code Playgroud)
但是,在用Babel编译它之后,它不起作用:
var Stack = function (_Array) {
_inherits(Stack, _Array);
function Stack() {
_classCallCheck(this, Stack);
return _possibleConstructorReturn(this, Object.getPrototypeOf(Stack).apply(this, arguments));
}
_createClass(Stack, [{
key: 'last',
value: function last() {
return this[this.length - 1];
}
}]);
return Stack;
}(Array);
console.log(Stack.prototype.last); // works
console.log((new Stack()).last); // doesn't work
Array.prototype.last = Stack.prototype.last;
console.log((new Stack()).last); // works
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我可以向新原型添加函数,但它们不可用于该原型的实例,除非它们直接插入到Array原型中(由于潜在的副作用,这显然是不好的做法).
更新:可能有几种方法可以解决这个问题(包括代理对象,或手动扩展原型而不是使用extends
),但由于我Stack
并不真正需要大多数Array方法,所以我现在只使用包装器.
const Stack = …
Run Code Online (Sandbox Code Playgroud) 我有一个带有 .gitignore 文件的存储库,它不包括构建路径(例如vendor/
来自 Composer)。
我还有一些.idea
我想忽略的本地 IDE 路径(例如来自 PhpStorm),但它们不在存储库的 .gitignore 文件中。
我不知道该怎么做。如果 git.gitignore_*
在文件夹中查找文件,那么我可以添加一个.gitignore_local
包含(除其他外)自己名称的文件。