标签: var

Javascript:z = z || []不使用VAR时会抛出错误 - 为什么?

出于好奇的好奇心,为什么javascript会接受

var z = z || [];
Run Code Online (Sandbox Code Playgroud)

初始化z(因为z可能最初定义)

但没有var,它会抛出一个错误(在全球空间)

z = z || [];
Run Code Online (Sandbox Code Playgroud)

(如果z先前未定义)

在全球空间中,您不需要使用VAR,但我得到它可能是不好的做法.

在你说这是一个重复的问题之前

var关键字的用途是什么以及何时使用它(或省略它)?

注意声明"如果你在全球范围内那么没有区别."

显然,根据我的工作实例,这并非100%正确.

这是一个怪癖还是有合法的逻辑?


在我学会的时候添加答案摘要:

感谢蒂姆(见下文)我误解的关键是没有意识到这一点(javascript的基础)

var z; 如果z已经存在,则绝对没有

这就是这个表达式似乎有两种方式,如果你错误的假设"var z"总是初始化.

从左边开始,"var z"只是确保定义了z,但是如果已经存在,则实际上不会影响任何现有值.然后在右边,如果z已经存在,则使用它,否则,变量刚刚被声明(但是为空),因此它不会被使用但不会引发错误.

这是关于Javascript中这种范围和提升问题的优秀文章:http: //www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting

非常感谢minitech和其他所有贡献者!

javascript var scoping operator-precedence hoisting

7
推荐指数
2
解决办法
232
查看次数

关于nettuts"学习jquery 30天"的四个问题

我正在做一个关于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)

当您单击网站上的"与我联系"按钮时,它基本上会滑下联系表单.我的问题是:

  1. 什么是"初始"的全部意义,你需要它吗?
  2. 为什么整个jquery代码在变量里面?
  3. 上的串码,说.on('click', this.show);你为什么需要thisthis.show
  4. 最后,为什么你需要contactForm.container.slideDown(500);为什么不能只是说container.slideDown(500);$('form.contact').slideDown(500); (顺便说一下,滑下来的形式的id是contact.

jquery var init this

7
推荐指数
1
解决办法
982
查看次数

无法使用var和foreach将void分配给隐式类型的局部变量

我正在尝试列出我的表单中的所有按钮名称以列出代码

var v = new List<Form1>() { this }.ForEach(x => { x.GetType().Name.Contains(typeof(Button).Name); });
Run Code Online (Sandbox Code Playgroud)

并总是得到错误

无法将void分配给隐式类型的局部变量

如何绕过那个?

c# foreach lambda var

7
推荐指数
2
解决办法
4万
查看次数

你能利用名为`var`的类的隐式类型变量吗?

我刚刚发现可以将关键字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年以来发生了变化?

c# var

7
推荐指数
1
解决办法
234
查看次数

Xcode 7,弱指针的重复相同地址

我对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)

DEBUG

在此输入图像描述

var weak swift xcode7

7
推荐指数
0
解决办法
193
查看次数

我对javascript let和var in for循环感到困惑?

这是我的循环代码

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循环中产生问题?

任何身体请帮助我理解这个概念.我是新的菜鸟,试图找出:)

谢谢你的帮助.

javascript scope for-loop var let

7
推荐指数
1
解决办法
6680
查看次数

sympy中var和Symbol的区别

这两种方法var和pythonsymbol中的sympy模块有什么区别吗?因为两者的工作方式相同。我用谷歌搜索,我没有找到差异的详细解释。它们真的是完全相同的东西,还是其中一个实际上正在使用另一个或什么?

python symbols var sympy

7
推荐指数
1
解决办法
3440
查看次数

有没有理由不放弃"var"?

在学习JavaScript的过程中,我了解到,Letconst引入来解决的问题Var就在全球范围内和提升,如果再声明不给错误.

现在我可以完全编写代码而不使用var吗?或者我现在应该知道它们并等到它们被广泛"接受"?

换句话说,如果我只使用let和,我暂时应该担心兼容性问题const吗?

javascript var const let

7
推荐指数
1
解决办法
289
查看次数

是否可以在 ARIMAX 模型中包含外生变量的滞后?

假设我有两个时间序列 {x} 和 {y},并且想要检查 {y} 的当前实现如何依赖于 {x} 的当前和过去实现以及 {y} 的过去实现。为此,我可以运行包含{x} 和 {y} 的p滞后的VAR(p) 模型。但是,我想假设 {x} 是外生的,所以我想运行 ARIMAX 模型会更好,即具有一个或多个外生变量的 ARIMA 模型。

为了估计 R 中的 ARIMAX 模型,我可以使用包TSAauto 中的函数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模型与外生变量。

var r time-series arima

7
推荐指数
1
解决办法
862
查看次数

为什么 Object 和 var 变量的行为不同?

有人可以解释的行为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 …

java var type-inference java-10

7
推荐指数
2
解决办法
155
查看次数