出于好奇的好奇心,为什么javascript会接受
var z = z || [];
Run Code Online (Sandbox Code Playgroud)
初始化z(因为z可能最初定义)
但没有var,它会抛出一个错误(在全球空间)
z = z || [];
Run Code Online (Sandbox Code Playgroud)
(如果z先前未定义)
在全球空间中,您不需要使用VAR,但我得到它可能是不好的做法.
在你说这是一个重复的问题之前
注意声明"如果你在全球范围内那么没有区别."
显然,根据我的工作实例,这并非100%正确.
这是一个怪癖还是有合法的逻辑?
在我学会的时候添加答案摘要:
感谢蒂姆(见下文)我误解的关键是没有意识到这一点(javascript的基础)
var z; 如果z已经存在,则绝对没有
这就是这个表达式似乎有两种方式,如果你错误的假设"var z"总是初始化.
从左边开始,"var z"只是确保定义了z,但是如果已经存在,则实际上不会影响任何现有值.然后在右边,如果z已经存在,则使用它,否则,变量刚刚被声明(但是为空),因此它不会被使用但不会引发错误.
这是关于Javascript中这种范围和提升问题的优秀文章:http: //www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting
非常感谢minitech和其他所有贡献者!
我正在做一个关于nettuts的免费jQuery课程,叫做Jeffrey Way学习jquery 30天,我有四件事我真的很难过,首先是这里的代码:
(function() {
$('html').addClass('js');
var contactForm = {
container: $('#contact'),
init: function() {
$('<button></button>', {
text: 'Contact Me'
})
.insertAfter('article:first-child ')
.on('click', this.show);
},
show: function() {
contactForm.container.slideDown(500);
}
};
contactForm.init();
})();
Run Code Online (Sandbox Code Playgroud)
当您单击网站上的"与我联系"按钮时,它基本上会滑下联系表单.我的问题是:
.on('click', this.show);你为什么需要this在this.show?contactForm.container.slideDown(500);为什么不能只是说container.slideDown(500);或$('form.contact').slideDown(500); (顺便说一下,滑下来的形式的id是contact.我正在尝试列出我的表单中的所有按钮名称以列出代码
var v = new List<Form1>() { this }.ForEach(x => { x.GetType().Name.Contains(typeof(Button).Name); });
Run Code Online (Sandbox Code Playgroud)
并总是得到错误
无法将void分配给隐式类型的局部变量
如何绕过那个?
我刚刚发现可以将关键字var用作类名:
public class var // no problem here
{
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我重载隐式强制转换运算符,我可以以一种有趣的方式使用我的类:
namespace MyApp
{
class Program
{
static void Main(string[] args)
{
var x = 1; // var is of type MyApp.var
}
}
public class var
{
public implicit operator var(int i)
{
return new var();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,是否仍然可以以某种方式使编译器推断出类型?这篇博客文章指出它是不可能的(转到以"或者,另一个例子"开头的段落),但也许自2009年以来发生了变化?
我对Xcode 7中看到的东西感到有些困惑,下面的3种颜色都有你想要的单独地址,但弱颜色都有相同的地址.我知道弱色是选项,所以weak_R和color_R有不同的地址,但我不能完全解释为什么所有3个弱显示相同的地址.
这看起来是否正确,如果是,有人可以解释我所看到的吗?如果不是我猜它是一个错误.
var color_R = SKColor.redColor()
var color_G = SKColor.greenColor()
var color_B = SKColor.blueColor()
weak var weak_R = color_R
weak var weak_G = color_G
weak var weak_B = color_B
Run Code Online (Sandbox Code Playgroud)
这是我的循环代码
var username = ['Sam', 'Adarsh', 'Rohit', 'Rajat'];
for(var i in username){
console.log(username[i]);
}
Run Code Online (Sandbox Code Playgroud)
它根据需要输出相同,但我不确定为什么需要声明.我理解VAR和LET的概念,但不确定var在哪些情况下会在for循环中产生问题?
任何身体请帮助我理解这个概念.我是新的菜鸟,试图找出:)
谢谢你的帮助.
这两种方法var和pythonsymbol中的sympy模块有什么区别吗?因为两者的工作方式相同。我用谷歌搜索,我没有找到差异的详细解释。它们真的是完全相同的东西,还是其中一个实际上正在使用另一个或什么?
在学习JavaScript的过程中,我了解到,Let和const引入来解决的问题Var就在全球范围内和提升,如果再声明不给错误.
现在我可以完全编写代码而不使用var吗?或者我现在应该知道它们并等到它们被广泛"接受"?
换句话说,如果我只使用let和,我暂时应该担心兼容性问题const吗?
假设我有两个时间序列 {x} 和 {y},并且想要检查 {y} 的当前实现如何依赖于 {x} 的当前和过去实现以及 {y} 的过去实现。为此,我可以运行包含{x} 和 {y} 的p滞后的VAR(p) 模型。但是,我想假设 {x} 是外生的,所以我想运行 ARIMAX 模型会更好,即具有一个或多个外生变量的 ARIMA 模型。
为了估计 R 中的 ARIMAX 模型,我可以使用包TSA或auto 中的函数arimax() ( https://www.rdocumentation.org/packages/TSA/versions/1.01/topics/arimax ) 。华宇() (https://www.rdocumentation.org/packages/forecast/versions/8.1/topics/auto.arima)的预测,这两个允许包括外生变量(它与参数XREG指定)
然而,我想知道为什么不能定义外生变量的滞后?或者是否有任何(理论)原因我们不应该估计包含外生变量滞后的 ARIMAX 模型?我知道这是可能有一个utoregressive d istributed大号股份公司模式,所以基本上是AR模型与外生变量。
有人可以解释的行为o2吗?是因为编译器优化吗?它是否记录在 JLS 的某处?
public class Test {
public static void main(String[] args) {
Object o1 = new Object() {
String getSomething() {
return "AAA";
}
};
// o1.getSomething(); // FAILS
String methods1 = Arrays.toString(o1.getClass().getMethods());
var o2 = new Object() {
String getSomething() {
return "AAA";
}
};
o2.getSomething(); // OK
String methods2 = Arrays.toString(o2.getClass().getMethods());
System.out.println(methods1.equals(methods2));
}
}
Run Code Online (Sandbox Code Playgroud)
产生的输出是
真的
[更新]
经过一些富有成效和有用的讨论,我想我可以理解这种行为(如果我的假设有误,请发表评论)。
首先,感谢@user207421,他解释说 Java 编译器将类型o2视为与 RHS 相同的类型,其中:
Object getSomething方法然后感谢@Joachim Sauer …