相关疑难解决方法(0)

为什么以下3行代码返回1?

我正在读一本关于JavaScript的书,名为Eloquent JavaScript。以下是该书的摘录:

“在JavaScript中访问属性的两种主要方法是用点和方括号。value.x和value [x]都访问value的属性,但不一定是相同的属性。区别在于x的解释方式。使用点时,点后的单词是属性的字面名称;使用方括号时,将计算括号之间的表达式以获取属性名称。而value.x获取名为“ x”的属性, “ value [x]尝试对表达式x求值,并使用转换为字符串的结果作为属性名称。”

在玩弄这些信息时,我碰巧尝试了这段代码。它返回数组第一个索引处的值。为什么这样?

arr = [1,2,3];
len = "length";
console.log(arr[len]);
Run Code Online (Sandbox Code Playgroud)

//输出为预期的“ 3”

arr = [1,2,3];
console.log(arr.length);
Run Code Online (Sandbox Code Playgroud)

//预期输出为“ 3”

arr = [1,2,3];
len = "length";
console.log(arr[length]);
Run Code Online (Sandbox Code Playgroud)

//输出为“ 1”

//由于JS是一种灵活的语言,所以我期望的输出是错误或至少为值“ 3”。

javascript

2
推荐指数
1
解决办法
56
查看次数

创建Javascript变量,其中包含变量名称和字符串组合

我似乎无法解决这个问题,继承人我拥有的......

vid1=0;
vid2=0;
vid3=0;

num=1;

'vid'+num = 1;
// vid1=1;
Run Code Online (Sandbox Code Playgroud)

我想基于数字创建变量,因此如果数字是2,则通过名称vid2创建变量并将其设置为1.

PS:这是我第一次在stackoverflow上,很抱歉,如果我在这个网站上的传统方面犯了任何错误=)并且比较先进.

javascript string variables

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

函数中的mopen(m1)和mopen('m1')之间有什么区别?

以下程序中使用的函数....为什么我们在函数mopen('m1')中使用单引号而不是mopen(m1)

<ul id="sddm">
    <div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
        <a href="#">HTML DropDown</a>
        <a href="#">DHTML DropDown menu</a>
        <a href="#">JavaScript DropDown</a>
        <a href="#">DropDown Menu</a>
        <a href="#">CSS DropDown</a>
    </div>
</li>
<li>
    <a href="#" onmouseover="mopen('m1')" onmouseout="mclosetime()">Home</a>
Run Code Online (Sandbox Code Playgroud)

javascript html5

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

使用Aurelia进行全局变量订阅

我在HTML中的脚本标记中初始化了一些全局变量:

<script>
  count = 0;
  window.count2 = 0;
  var count3 = 0;
</script>
Run Code Online (Sandbox Code Playgroud)

app.js,我订阅观察他们的变化:

let subscription = bindingEngine.propertyObserver(window, 'count')
  .subscribe((newValue, oldValue) => console.log('Global count: ', newValue, oldValue));

let subscription2 = bindingEngine.propertyObserver(window, 'count2')
  .subscribe((newValue, oldValue) => console.log('window.count2: ', newValue, oldValue));

let subscription3 = bindingEngine.propertyObserver(window, 'count3')
  .subscribe((newValue, oldValue) => console.log('Global count3: ', newValue, oldValue));  
Run Code Online (Sandbox Code Playgroud)

然后我改变这样的值:

change() {
    count++;
    count2++;
    count3++;
}
Run Code Online (Sandbox Code Playgroud)

只有count&& count2在控制台中被观察到:

Global count:  1 0
window.count2:  1 0
Run Code Online (Sandbox Code Playgroud)

这是GistRun

问题:为什么count3不能观察到?我认为3种形式的初始化是等价的.

javascript aurelia aurelia-binding

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

标签 统计

javascript ×4

aurelia ×1

aurelia-binding ×1

html5 ×1

string ×1

variables ×1