在Node.js的REPL中(也在SpiderMonkey中测试)序列
var foo = null;
(foo) = "bar";
Run Code Online (Sandbox Code Playgroud)
是有效的,foo随后等于"bar"相反null.
这似乎违反直觉,因为人们会认为括号至少会取消引用bar并在赋值中抛出无效的左侧.
可以理解的是,当你做任何有趣的事情时,它确实以上述方式失败了.
(foo, bar) = 4
(true ? bar : foo) = 4
Run Code Online (Sandbox Code Playgroud)
根据ECMA-262关于LeftHandExpressions(据我可以解释),没有有效的非终端会导致括号被接受.
有什么我没看到的吗?
我的问题是这里的袖口有点偏,所以我会尽力解释这个.
我有一个文本区域,有css #object{overflow:hidden;resize:none;}.我试图阻止它产生滚动条,同时也调整自己的大小.此textarea与外部脚本的控制台同步,这意味着它会更新.但是,默认情况下,它将保持在顶部,除非您突出显示文本,拖动到元素的底部.这自然是向下滚动而不是使用箭头键的唯一方法.
以编程方式,是否有任何方法可以在更新时将文本区域保持在底部?让它自动滚动以适应其用例会很不错.
在CSS3中,动画是在各种供应商前缀下引入的,具有过渡属性.现在,至少在纯CSS中,有两种方法可以使元素更改位置.
left: right: top:和bottom:-vendor-transform:translate(X,Y,Z)现在,严格地说transform:translate(),除了一个人的使用能力之外,translateZ()它们之间的唯一区别是后者不是报告值; 除了解析属性本身之外,转换不是计算样式.但是,如果没有必要,后者实际上是position:fixed配置中动画和定位元素的更好选择吗?
我特别感兴趣的是制作一个需要在移动设备和浏览器上运行的非常繁重的webapp,因此向后兼容性并不是一个问题.如今的移动浏览器往往至少是"现代的".
最终,我的问题是,根据CSS3规范的制造商,到底是什么transform:translate()?它是建立在LRTB变换上使用的地方,并且当采用硬件加速(-webkit-transform: translateZ(0);)时,为了渲染速度,动画平滑度和视觉稳定性,是否可以以明显优越的方式使用它?对于那些不知道的人,有时webkit元素会在硬件加速环境中闪烁.
在任何情况下,我只是为我的网络应用寻找最好和最新的布局解决方案,它们可以最有效地利用CPU和GPU,因此它们可以在非常优化的FPS上运行(就转换而言,案例,滚动是关注的)这是最理想的平滑类型的一个很好的例子是http://www.webkit.org/blog-files/leaves/(是的,我确实阅读了它的来源.)
有什么输入?
我正在为iPad和其他平板电脑编写一个webapp,并且在关注正确有效的定位和动画之后会出现很多视口问题.我最近提出了为所有自由浮动元素使用-webkit-transform的想法.我的问题是,使用CSS规范提供的转换对于平滑可靠的动画更好,而不是例如更改position:relative元素内的lrtb值吗?
随着硬件加速,我发现移动元素中发生随机闪烁,特别是在方向变化时.(绝对定位的元素)所以,看到没有值得注意的博客使用这种方法,我想检查是否有一些专业的原因,这是一个坏主意.
当我搜索特定的东西时,我已经多次遇到"创建包装器并扩展它"的概念.就我而言,我想扩展DOM.我知道对此有何建议,但我想要做的是略有不同,为此我需要至少探索这些方法.所以我的问题是,在没有得到直接答案之后,我看到的是什么博客/ wiki/tut是:什么是包装器对象/函数,你如何制作和使用它?
对不起,如果事实证明我毫无意义; 当我读到原型库时,我从这个想法中得到了这个想法,JQuery曾经做过这些事情.如果您可以使用DOM作为示例,那将不胜感激.
我正在编写一个节点应用程序,它需要在createServer()回调的连接迭代中记住数据。有没有一种不涉及数据库或文件 r/w 的简单方法?到目前为止,我已经尝试在相应的模块甚至主脚本中创建对象,同时将它们传递给各种响应处理程序,但是对于每个连接,它们都会被刷新。
我的意思是:
require('http').createServer(function(req,res){
route(req,res,object);
}).listen(cp=80);
object={variable:0}
function route(req,res,object){
res.end();
console.log(object.variable);
object.variable=Math.floor(Math.random()*100);
}
Run Code Online (Sandbox Code Playgroud)
console.log0在这种情况下,它毫不奇怪地抛出每个连接。有什么方法可以创建全局变量,不是在跨模块可用的意义上,而是在持久性不同于var's 的意义上?
我需要声明一个局部变量并在if语句的条件下测试它.我希望能够这样做,但是我需要在没有全球范围的情况下这样做; 这可能吗?
notWorkingSofar('#element');
function notWorkingSofar(a) {
if(!(b=document.getElementById(a.slice(1)))){return b;}
else{return false;}
}
Run Code Online (Sandbox Code Playgroud)
我需要它基本上这样做; 但是这会产生SyntaxError.
notWorkingSofar('#element');
function notWorkingSofar(a) {
if(!(**var** b=document.getElementById(a.slice(1)))){return b;}
else{return false;}
}
Run Code Online (Sandbox Code Playgroud)
有没有其他方法来访问或设置局部变量,除了"var variable ="之外?也许是通过function.variable,类似于window.variable ......虽然不确定.
编辑:尝试在这些链中进行:(!!(b = document.getElementById(a.slice(1)))?b:[0,])
在大多数脚本语言中,对象通常是项的集合,绑定到这些对象中的名称.例如(在Javascript中),如果我要初始化这个:
colors = {
Blue: 0x0000FF; //Hex Values
Green: 0x00FF00;
Red: 0xFF0000;
}
Run Code Online (Sandbox Code Playgroud)
在运行时,如果用户输入列出的颜色,我可以轻松返回相应的十六进制值colors["given_color"].
但是,如何在C++或其他编译语言中表达一个甚至类似的远程机制呢?创造一个enum只会静态地具有意义,在一个人为的例子中:
public enum colors{
CYAN = 0x00FFFF,
MAGENTA = 0xFF00FF,
YELLOW = 0xFFFF00
}
Run Code Online (Sandbox Code Playgroud)
不能以任何方式用于查找相应的Hex的说法 std::cin << givenColor;
话虽这么说,我有什么选择转换std::string成数据点,指针或函数指针?