我在JavaScript中的switch语句中需要多个case,比如:
switch (varName)
{
case "afshin", "saeed", "larry":
alert('Hey');
break;
default:
alert('Default case');
break;
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?如果在JavaScript中没有办法做类似的事情,我想知道一个也遵循DRY概念的替代解决方案.
我不知道这个问题是否在其他语言中有效,但我是专门问这个问题的JavaScript
.
我在一些文章和问题中看到,JavaScript中最快的循环是这样的:
for(var i = array.length; i--; )
Run Code Online (Sandbox Code Playgroud)
同样在Sublime Text 2中,当您尝试编写循环时,它建议:
for (var i = Things.length - 1; i >= 0; i--) {
Things[i]
};
Run Code Online (Sandbox Code Playgroud)
我想知道,为什么i--
比i++
循环更快?
我们有两种不同的方式在JavaScript中进行函数表达式:
命名函数表达式(NFE):
var boo = function boo () {
alert(1);
};
Run Code Online (Sandbox Code Playgroud)
匿名函数表达式:
var boo = function () {
alert(1);
};
Run Code Online (Sandbox Code Playgroud)
并且可以调用它们boo();
.我真的不明白为什么/什么时候我应该使用匿名函数,何时我应该使用命名函数表达式.他们之间有什么区别?
假设我有这个代码:
<div class="parent">
<div class="child">
Hello world
</div>
</div>
<div class="wholePage"></div>
Run Code Online (Sandbox Code Playgroud)
这个jsFiddle:http://jsfiddle.net/ZjXMR/
现在,我需要<div class="child">
在上面<div class="wholePage">
但是在jsFiddle中你可以看到之前渲染的子元素<div class="wholePage">
.
如果删除parent
该类,position
或z-index
一切正常.这是我需要的正确行为:http://jsfiddle.net/ZjXMR/1/
如果有z-index
或没有从页面删除任何东西我怎么能这样做?
对于我的网站,我有以下htaccess规则:
# BEGIN Gzip
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
</IfModule>
# END Gzip
# BEGIN EXPIRES
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 10 days"
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/plain "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType application/x-javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-icon "access plus 1 year"
</IfModule> …
Run Code Online (Sandbox Code Playgroud) 我在Koa看到了一些奇怪的东西.它有一些新的函数名称(来自https://github.com/koajs/koa/blob/master/examples/co.js#L10):
app.use(function(){
return function *(){
var paths = yield fs.readdir('docs');
var files = yield paths.map(function(path){
return fs.readFile('docs/' + path, 'utf8');
});
this.type = 'markdown';
this.body = files.join('');
}
});
Run Code Online (Sandbox Code Playgroud)
什么return function *()
意思?我们可以*
在JavaScript中声明一个名称为的函数吗?
作为jQuery代码(https://coderwall.com/p/7uchvg)的一个例子,我读到表达式的$('#foo a');
行为如下:
找到
a
页面中的每一个,然后a
在里面过滤#foo
.
它看起来效率不高.
那是对的吗?如果是的话,我们应该如何以更好的方式做到这一点?
我不确定是否将Travis-CI用于我的客户端JavaScript库,因为它在Travis-CI服务器上使用NodeJ进行编译.
我想知道这是一种很好的方法来使用某种持续集成,例如Travis-CI用于客户端库吗?
我搜索过很多关于压力测试NodeJs应用程序/模块但我没有找到任何东西.
我有一个推送服务器应用程序(类似于socket.io),我想测试它以确保没有内存泄漏,并且它表现出最佳性能.
这样做的最佳方法或工具是什么?
我在为休息服务设计URL时遇到一些困难,该休息服务可以基于作为一种操作的分页处理对客户的请求,或者请求大于或小于运算符作为另一种类型的操作.例如:
分页:
GET /customers/0/100
Run Code Online (Sandbox Code Playgroud)
这将为第0页获得100个客户.
大于/小于:
我还需要一个URL设计来获得id大于n的客户(比如说716).你如何在网址中加入"大于"或"小于".我必须记住,字符">"和"<"在网址中是非法的.我认为这个网址设计看起来很奇怪:
GET /customers/greaterthan/716
GET /customers/lessthan/716
Run Code Online (Sandbox Code Playgroud)
我不能使用范围,因为它会与上面指定的分页模式冲突,并且在任何情况下都不是一个好的解决方案,例如:
GET /customers/716/999999999999
GET /customers/0/716
Run Code Online (Sandbox Code Playgroud)
我确信我错过了一些明显的东西 - 有没有人有更好的解决方案?
javascript ×7
node.js ×2
performance ×2
.htaccess ×1
algorithm ×1
api ×1
caching ×1
css ×1
ecmascript-6 ×1
function ×1
gzip ×1
jquery ×1
optimization ×1
rest ×1
sizzle ×1
testing ×1
travis-ci ×1
url ×1
z-index ×1