相关疑难解决方法(0)

10
推荐指数
1
解决办法
3947
查看次数

"use strict":为多个变量赋值

"use strict";javascript中还有其他方法可以将值初始化为多个变量吗?因为这样做:

var x = y = 14;
Run Code Online (Sandbox Code Playgroud)

会导致错误: Uncaught ReferenceError: y is not defined

在这里得到我的参考:

在Javascript中将多个变量设置为相同的值

javascript variables var

9
推荐指数
2
解决办法
1011
查看次数

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
查看次数

在Javascript中引用数组

我有一个可能是个愚蠢的问题.在下面的代码中,函数doStuff似乎将myArray重新分配给一个空数组,但是当在控制台中尝试它时,myArray仍然是[2,3,4,5].

var myArray = [2, 3, 4, 5];
function doStuff(arr) {
   arr = [];
};

doStuff(myArray);
console.log(myArray)// => [2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

此外,修改数组的函数似乎工作正常.例如:

 function changeSecondIndex(arr){
      arr[2] = 25;
 }

 changeSecondIndex(myArray)
 console.log(myArray) // => [2,3,25,5]
Run Code Online (Sandbox Code Playgroud)

有人可以帮我理解这里发生了什么吗?谢谢.

javascript arrays

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

在javascript程序中何处使用"var"

可能重复:
使用var和不使用JavaScript中的var之间的区别

你好,

我是一个自学的开发人员.总是,我写没有varfor变量的javascripts .但是一些javascripts var用于变量.

两者都适合我.我有点困惑.

是用var标准表单编写脚本还是只在类中使用?

javascript variables jquery class

6
推荐指数
1
解决办法
3143
查看次数

$在变量的开头和结尾

可能重复:
为什么JavaScript变量以美元符号开头?

我用jquery实现了一些语法,并且不知道它是什么.开始:

var $foo = $("bar").blah();

var hello$ = $("stgelse").etc();
Run Code Online (Sandbox Code Playgroud)

这些有什么区别?他们为什么喜欢那样?

另外,例如:

var $foo = $("").blah();
Run Code Online (Sandbox Code Playgroud)

var应该已经包含正在返回的任何一方?没有?

你能详细说明吗?

javascript jquery

6
推荐指数
2
解决办法
5792
查看次数

通过html按钮更改变量

我正在学习JavaScript,因此决定创建简单的Rock,Paper和Scissors游戏。我想通过按钮来控制它。所以我用html制作了这个:

<div id="game">
    <button onClick="user(rock)">Rock</button>
    <button onClick="user(paper)">Paper</button>
    <button onClick="user(scissors)">Scissors</button>
    <div id="result"></div>
    <br>
    <br>
    <button onClick="test()">DEBUG</button>
</div>
Run Code Online (Sandbox Code Playgroud)

并在.js文件中

var user = "none";
function user(choice){
    var user = choice;
}

function test(click){
    alert("You chose " + user);
}
Run Code Online (Sandbox Code Playgroud)

因此,我认为单击“ Rock”按钮后,它将把var user更改为rock,但是没有。单击岩石,然后单击“调试”按钮后,出现“您没有选择”的信息。

html javascript var

6
推荐指数
1
解决办法
5万
查看次数

为什么javascript在删除时区分有或没有声明的赋值?

在全局上下文中执行以下代码:

var x = 1;
y = 1
delete x //false
delete y //true
Run Code Online (Sandbox Code Playgroud)

这两个xy是全局对象的属性.为什么javascript必须在某种程度上区分它们?


这很容易按套路accoring到ES5标准delete运营商对象的内部方法[[delete]].

更明确的问题是他们为什么采用不同的[[configurable]]属性?

javascript

6
推荐指数
1
解决办法
109
查看次数

未使用 var 声明的 JavaScript 变量会成为全局变量吗?

我在一个文件中有以下代码:

function refreshGridSuccess(responseText, entity) {

    oTable = $('#dataTable').dataTable({
        "sScrollX": "100%",
Run Code Online (Sandbox Code Playgroud)

在另一个文件中,我有:

$('#detailData')
        .on('click', '.sort-up', function (event) {
            event.preventDefault();
            var column = $(this).closest('th'),
                columnIndex = column.parent().children().index(column.get(0));
            oTable.fnSort([[columnIndex, 'asc']]);
            return false;
        })
Run Code Online (Sandbox Code Playgroud)

oTable除了这里,我没有定义。脚本似乎可以工作,这是否意味着它oTable以某种方式变成了全局变量?

现在我正在尝试开始使用 Typescript,如果没有Otable声明它就不会接受。有没有办法可以声明oTable为对象,或者我是否必须将其声明为与返回的类型相同的对象$('#dataTable').dataTable({})

javascript jquery typescript

5
推荐指数
1
解决办法
5798
查看次数

解释如何在 javascript 中使用数据类型“var”或“let”存储值以及执行堆栈如何工作

在这里,我不明白当我var在函数中使用 before 变量时会发生什么,它给了我不同的输出,并且不使用var也得到了不同的输出

这是一段代码,您可以轻松地弄清楚发生了什么

function value() {
  var m = 8; //here i am using var as a datatype  
  console.log(m)
}
m = 7
console.log(m);
value();
console.log(m);
Run Code Online (Sandbox Code Playgroud)

而且当我删除 var 或不使用值函数中的任何数据类型时,我得到了不同的输出,这里是一个代码

function value() {
  m = 8; //here i am not using var as a datatype  
  console.log(m)
}
m = 7
console.log(m);
value();
console.log(m);
Run Code Online (Sandbox Code Playgroud)

谁能告诉我发生了什么事吗?谢谢您的宝贵时间

javascript

5
推荐指数
1
解决办法
62
查看次数