相关疑难解决方法(0)

使用'[]'表示法访问javascript对象成员而不是点符号的原因是什么?

可能重复:
JavaScript属性访问:点符号与括号?

我现在正在阅读一些开源的javascript项目代码,我发现他们有时会访问对象属性,person.name但有时他们会访问person['name'].

对我来说,点符号与其他符号相当清楚.点符号很容易写和读,但在源代码中我看到它们有时使用点符号有时[]括号符号,我试图理解它的原因是什么.

可能是什么原因?

javascript

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

localStorage["something"] 与 localStorage.something

可能的重复:
JavaScript 属性访问:点符号与括号?

我是 chrome 扩展的新手。我知道 Java,但 Javascript 是完全不同的东西。

我想问一下localStorage["something"]和 和有localStorage.something什么不一样?

方括号与点。

javascript local-storage

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

在此javascript中使用变量for循环

我希望for循环打印出所有的文本框值,它不会这样思考,我该怎么办呢?

<script>
    current = x;

    for (var i = 0; i < current; i++) {    
        var num = document.calculator.textbox + i + .value;    
        document.write("<br>" + num);    
    }
</script>
<form name="calculator">
    <input type="text" name="textbox1">
    <input type="text" name="textbox2">
    <input type="text" name="textbox3">
    <input type="text" name="textbox4">
    <input type="text" name="textbox5">
    <!--...... infinite amount of textboxes-->
</form>
Run Code Online (Sandbox Code Playgroud)

javascript variables

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

JavaScript对象 - [] vs dot

这两项任务之间有什么区别(如果有的话):

var foo = {};
foo['bar'] = "some value";
foo.baz = "some other value";

console.log(foo.bar)
=> "some value"
console.log(foo.baz)
=> "some other value"
Run Code Online (Sandbox Code Playgroud)

他们是同义词吗?我注意到你可以使用[]语法添加不是有效属性名称的键.

foo['a space'] = "does not work";
console.log(foo.a space);
=> SyntaxError: Unexpected identifier
Run Code Online (Sandbox Code Playgroud)

我的理由是我为伪命名空间编写了一个小JS库.它的编写假设上述赋值是相同的(忽略使用[]语法时允许的超集)

javascript

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

从函数中访问javascript对象

为什么先工作而不是后者?*它只有一个小的区别,在后一种情况下,我使用速记来访问猫对象属性.我读到如果"属性的名称将是一个有效的变量名称 - 当它没有任何空格或符号并且不以数字字符开头时"它应该没有任何区别.

    //this works 
    var cats = {Spot:true};

    function addCat (name) {   cats[name] = true; }

    addCat("white");

    console.log ("white" in cats);  //true

    console.log (cats.white); //true
Run Code Online (Sandbox Code Playgroud)
    //this doesn't work 
    var cats = {Spot:true};

    function addCat (name) {   cats.name = true; }

    addCat("white");

    console.log ("white" in cats); //false

    console.log (cats.white); //undefined
Run Code Online (Sandbox Code Playgroud)

javascript object javascript-objects

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

jQuery数组设置键和值,并通过AJAX发送数组

我想将键值对发送到我的php页面,但我需要从数据标签中动态设置键值.

这是我到目前为止的代码:

function send(){
    var attr = new Array();

    var key = $('#add').attr('data-key');
    var value = $('#add').attr('data-value');

    attr.push({ key : value });

    var data = {attributes: attr};

    $.ajax({
            url: "ajax.php",
            type: "POST",
            data: data,
            success: function(result) {
                alert(result)
            }
    });

}
Run Code Online (Sandbox Code Playgroud)

这不是实际代码,它只是基本功能.

问题出在这里:

attr.push({ key : value });
Run Code Online (Sandbox Code Playgroud)

'key'不是我设置的变量.

我能帮忙吗?我真的很感激.非常感谢你!

javascript arrays ajax jquery

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

试图了解看起来像对象作为地图的Javascript代码

我正在学习javascript,并遇到了一些类似于以下代码的Javascript代码。似乎carArrays仅通过将数组分配给即可将对象变成地图carArrays[car1.year]。因此,我对此代码有很多疑问。

  1. 哪些JavaScript规则允许您执行此操作?

  2. 我以为[]是阵列。如果carArrays现在是地图,为什么使用方括号将其索引?

  3. 关于carArrays成为地图,我的解释正确吗?还是仍将其视为具有键“ 1999”和“ 2005”的对象?

我的代码:

function car( make, model, year){
    this.make = make;
    this.model = model;
    this.year = year;
}

let car1 = new car('bmw', '3series', 1999);
let car2 = new car('ford', 'crownvic', 1999);
let car3 = new car('honda', 'accord', 1999);

let car4 = new car('bentley', '5', 2005);
let car5 = new car('chevy', 'silverado', 2005);
let car6 = new car('toyota', 'rav4', 2005);

let carArrays = {};
carArrays[car1.year] = [car1, car2, car3];
carArrays[car4.year] …
Run Code Online (Sandbox Code Playgroud)

javascript

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

为什么用点表示法无法访问javascript数组元素?

为什么不能用点表示法访问数组元素?

var arr = ['Apple', 'Mango', 'Pineapple', 'Orange', {name: 'Banana', color: 'yellow'}];

console.log( arr[0] ); // "Apple"
console.log( arr.0 ); // "Apple"
console.log( arr.3 ); // "Orange"
console.log( arr[4].name ); // "Banana"
console.log( arr.4.color ); // "Color"
Run Code Online (Sandbox Code Playgroud)

换句话说,为什么语言设计师选择禁止以数字开头的标识符?

javascript arrays

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

点和方括号表示法

我试图理解点和方括号表示法之间的区别。在查看 SO 和其他一些网站上的各种示例时,我遇到了这两个简单的示例:

var obj = { "abc" : "hello" };
var x = "abc";
var y = obj[x];
console.log(y); //output - hello
Run Code Online (Sandbox Code Playgroud)

var user = {
  name: "John Doe",
  age: 30
};
var key = prompt("Enter the property to modify","name or age");
var value = prompt("Enter new value for " + key);
user[key] = value;
alert("New " + key + ": " + user[key]);
Run Code Online (Sandbox Code Playgroud)

obj[x]如果在第三行中我将 替换为,第一个示例将返回 y 为未定义obj.x。为什么不"hello"


但在第二个示例中,表达式user[key]可以简单地替换为,user.key而不会出现任何异常行为(至少对我来说)。现在这让我很困惑,因为我最近了解到,如果我们想通过存储在变量中的名称访问属性,我们可以使用 [ ] …

javascript syntax square-bracket

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

减少对象思想object.entries

我有这种对象

我想使用具有“ exist === true”键的新对象

const someObj  = {
      super: {
        exist: true
      },
      photo: {
        exist: true
      },
      request: {
        exist: false
      }
}
const newObj = Object.entries(someObj).reduce((newObj, [key, val]) => {
  if (this.key.exist) { // how to check "exist" is true ?
    return { ...newObj, [key]: val }
  }
}, {}))

console.log(newObj);
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

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