我在JavaScript中有一些常量,我想在几个文件中重用,同时保存键入,减少错误输入的错误,保持运行时性能高,并且对node.js服务器脚本或客户端Web浏览器脚本有用.
例:
const cAPPLE = 17;
const cPEAR = 23;
const cGRAPE = 38;
...(some later js file)...
for...if (deliciousness[i][cAPPLE] > 45) ...
Run Code Online (Sandbox Code Playgroud)
以下是我可以做的一些事情:
将const列表复制/粘贴到使用的每个文件的顶部.哦,哎呀.我宁愿不.这与保持常量名称简洁和简单兼容.如果列表中的任何内容发生变化,它会违反DRY并引发各种可怕的错误.
常量列表---> const.js
在浏览器上,这是FINE ...脚本被html文件输入并且工作正常.
但是在node.js上,require机制改变了常量名称,干扰了代码重用,需要更多的输入,因为需要工作....
AFAIK对于没有使用全局变量的任何const.js,这在设计中在node.js中不起作用:
require('./const.js');
for...if...deliciousness[i][cAPPLE] > 45 ...;
Run Code Online (Sandbox Code Playgroud)
这是node.js的方式:
(... const.js ....)
exports.APPLE = 17;
(... dependency.js ... )
var C = require('./const.js');
for...if...deliciousness[i][C.APPLE] > 45.....
Run Code Online (Sandbox Code Playgroud)
所以我要么必须有两个常量文件,一个用于node.js需要,一个用于浏览器,或者我必须使用列表中的其他内容...
3使得要导入的对象的常量属性...仍然需要两个文件...因为node.js导入方式与浏览器不匹配.也使名称更长,可能需要更多的时间来进行查找,正如我所暗示的那样,可能会出现在循环中.
4外部常量列表,内部适配器....读取外部常量,无论如何存储,都放入每个文件的内部结构中,而不是直接尝试使用外部列表
const.js
exports.cAPPLE = 17
browser.js
const cAPPLE = exports.cAPPLE;
...code requiring cAPPLE...
node.js
CONST = require(./const.js)
const cAPPLE = CONST.cAPPLE;
...code requiring cAPPLE... …Run Code Online (Sandbox Code Playgroud) 我想制作一个0到1之间的随机数组,所以我试过:
var randList = _.map(new Array(5), Math.random);
Run Code Online (Sandbox Code Playgroud)
但我没有得到我预期的随机元素列表,而是:
console.log(JSON.stringify(randList));
"[null,null,null,null,null]"
Run Code Online (Sandbox Code Playgroud)
为什么我得到一个null数组而不是随机数?
如何计算这个数字而不是枚举所有排列,然后创建集合以切断所有重复?
len(set(itertools.permutations('aaabbb')))
20
len(set(itertools.permutations('aabb')))
6
Run Code Online (Sandbox Code Playgroud) 如何在python中int投射enum?
这就是数据如何给我,在一个对象w /由管道char分隔的元素.
首先,我需要组合两个数组,然后按字母顺序排序.以下示例是一个简化示例.但有些事情正在抛弃排序功能.结果很奇怪
carriersOne = ['St. Joseph\'s Medical Center | New York Health Care Insurance Company | Some Other Company'];
carriersTwo = ['Advantage Care | Chicago Insurance Company | Hospital Insurance Corporation'];
carriersOne = carriersOne[0].split('|');
carriersTwo = carriersTwo[0].split('|');
allCarriers = carriersOne.concat(carriersTwo);
allCarriers.sort();
count = allCarriers.length;
for(i=0;i<count;i++) {
alert(allCarriers[i]);
}
Run Code Online (Sandbox Code Playgroud)
你得到的是:
Chicago Insurance Company
Hospital Insurance Corporation
New York Health Care Insurance Company
Some Other Company
Advantage Care
St. Joseph's Medical Center
Run Code Online (Sandbox Code Playgroud)
wt-bleep命令是什么?注意:如果您使用单个名称或可预测的名字和姓氏,它会合并并排序.
当我使用Jquery向下滑动DIV时,div animatino看起来像是从顶部到底部拉伸/绘制div.
HTML
<body>
<div style="width:400px;background-color:black; height:50px">
<div id="error" style="background-color:red; color:white; display:none; width:120px">the error message</div>
</div>
<div id="button" style="margin-top:20px; background-color:gray; width:70px; cursor:pointer;">click me!</div>
</body>
Run Code Online (Sandbox Code Playgroud)
js(jquery-ui)
$(document).ready(function(){
$("#button").click(function(){
$('#error').slideDown('slow', function () {
// Animation complete.
});
});
});
Run Code Online (Sandbox Code Playgroud)
我希望动画看起来就像DIV从上到下滑动的全尺寸(当然是隐藏的一部分).
我正在添加一个图像,以便清除我想要实现的内容.

是否可以通过更改一些CSS或Jquery参数来实现此目的.我知道JQuery id只是玩高度因为我的DIV底部有圆角而且它们只出现在动画的末尾.
我在 JavaScript 中设置了一个断点,并在 Chrome 浏览器的控制台窗口中输入了以下表达式:
输入:
(((i % 12) == 0) ? '12' : (i % 12))
Run Code Online (Sandbox Code Playgroud)
结果:
9
Run Code Online (Sandbox Code Playgroud)
输入:
' ' + (i < 12) ? 'AM' : 'PM'
Run Code Online (Sandbox Code Playgroud)
结果:
"AM"
Run Code Online (Sandbox Code Playgroud)
输入:
(((i % 12) == 0) ? '12' : (i % 12)) + ' ' + (i < 12) ? 'AM' : 'PM'
Run Code Online (Sandbox Code Playgroud)
结果:
"AM"
Run Code Online (Sandbox Code Playgroud)
我的期望是最后的结果是“9AM”,这就是我想要的。这就是我输入的结果9 + "AM"。为什么它只给我“AM”?
我是在某个地方犯了一个愚蠢的错误,还是有什么超出了我对 JavaScript 内部工作原理的有限理解的地方?i只是一个for循环变量。
HTML:
<form method="post" action="">
<select name="fancySelect" class="makeMeFancy">
<option value="0" selected="selected" data-skip="1">Email Color Scheme</option>
<option value="81" data-color1="993300" data-color2="000000" data-html-text="Brown on Black">Brown on Black</option>
<option value="77" data-color1="663366" data-color2="000000" data-html-text="Purple on Black">Purple on Black</option>
<option value="129" data-color1="00ccff" data-color2="000000" data-html-text="Teal on Black">Teal on Black</option>
<option value="75" data-color1="666666" data-color2="000000" data-html-text="Dark Gray on Black">Dark Gray on Black</option>
<option value="85" data-color1="999999" data-color2="000000" data-html-text="Gray on Black">Gray on Black</option>
<option value="81" data-color1="993300" data-color2="000000" data-html-text="Brown on Black">Brown on Black</option>
<option value="77" data-color1="663366" data-color2="000000" data-html-text="Purple on Black">Purple on Black</option>
<option value="129" …Run Code Online (Sandbox Code Playgroud) Ubuntu Studio Linux 14.04.1 LTS
我想从 Linux shell 脚本启动一个精确大小的浏览器窗口,例如作为自动录制截屏视频的步骤。
我的第一个想法是使用 Xwindows-geometry设置,该设置曾经是 Xwindows 中所有应用程序所共有的,并保留在Gnome 选项中
#!/bin/bash -e
chromium-browser -geometry 1280x720 # ignores the spec
# firefox -geometry 1280x720 ignores the spec too
Run Code Online (Sandbox Code Playgroud)
我在 FreeBSD 论坛中找到了这篇文章,其中也说 Firefox 会忽略该-geometry设置。建议在启动时使用 Javascript,如下所示:
% firefox javascript:%20resizeTo\(1280,720\)
Run Code Online (Sandbox Code Playgroud)
在JS中调用window.resizeTo() 。测试了一下,也是不行。MDN 的链接页面指出,除了少数例外,这在 Firefox 7 后将不起作用。
@helloV 指出:从具有特定窗口坐标的命令行启动 Google Chrome
这是关于位置而不是大小。然而,深入研究后得出的这些想法也行不通
不:
chromium-browser --window-size=800,600
chromium-browser --window-size="800,600"
chromium-browser --window-size=800x600
chromium-browser -window-size=800,600
chromium-browser -window-size=800x600
Run Code Online (Sandbox Code Playgroud)
我们总是可以阅读Firefox 命令行选项页面(提示:窗口大小不存在)或Chrome 切换源代码,我们可以在其中找到 …