如何声明一个带有“+”或“-”符号的变量?Javascript

如何声明一个带有“+”或“-”符号的变量?Javascript,javascript,Javascript,我正在用Javascript编写一个程序,但我不知道如何为带有+和-的分数声明一个变量 var A+ = 4.0; var A = 4.0; var A- = 3.67; 这些是变量名中的非法字符,但即使它们不是,对于一个对象来说,这似乎是一个完美的位置—一个变量,而不是多个独立变量,并且对象可以有您感兴趣的键值对: const grades = { 'A+': 4, 'A': 4, 'A-': 3.67, // ... }; 请注意,带有尾随十进制零

我正在用Javascript编写一个程序,但我不知道如何为带有+和-的分数声明一个变量

    var A+ = 4.0;
    var A = 4.0;
    var A- = 3.67;

这些是变量名中的非法字符,但即使它们不是,对于一个对象来说,这似乎是一个完美的位置—一个变量,而不是多个独立变量,并且对象可以有您感兴趣的键值对:

const grades = {
  'A+': 4,
  'A': 4,
  'A-': 3.67,
  // ...
};
请注意,带有尾随十进制零的数字的尾随零会自动截断-如果要使用4.0,请改用字符串“4.0”,或者在以后检索数字时使用toFixed将其转换为字符串

要迭代此类对象,请使用object.entries获取每个键值对:

Object.entries(grades).forEach(([key, val]) => {
  // on first iteration, key will be A+, value will be 4
});
要访问或设置其属性,请将密钥名称放在括号中:

grades['A+'] = 'newA+Value';

点表示法,如grades.A,仅当键遵循与有效变量名相同的规则时才起作用-否则,必须使用括号表示法,这些字符在变量名中是非法字符,但即使它们不是,这听起来像是一个对象的完美位置—单个变量,而不是多个独立变量,对象可以有您感兴趣的键值对:

const grades = {
  'A+': 4,
  'A': 4,
  'A-': 3.67,
  // ...
};
请注意,带有尾随十进制零的数字的尾随零会自动截断-如果要使用4.0,请改用字符串“4.0”,或者在以后检索数字时使用toFixed将其转换为字符串

要迭代此类对象,请使用object.entries获取每个键值对:

Object.entries(grades).forEach(([key, val]) => {
  // on first iteration, key will be A+, value will be 4
});
要访问或设置其属性,请将密钥名称放在括号中:

grades['A+'] = 'newA+Value';

点表示法,如grades.A,仅在键遵循与有效变量名相同的规则时有效-否则,在尝试使用Object.entries时,必须使用括号表示法

,我遇到了与最初尝试声明变量时相同的问题。在Object.entries的第一次迭代中,键将是一个包含+的字符串,例如,它是完全有效的-然后,只需将该字符串及其值用于您需要的任何用途。好的,谢谢。我的最后一个问题是如何在函数中使用它,例如,如果我使用document.getElementByIdgrade1.value从textarea获取输入值,假设它是一个a+。设置这些常量会自动将输入转换为4吗?很抱歉造成混淆,我刚刚开始编程。请参阅答案的最后一部分-要访问或设置对象的属性,只需将键名放在括号中即可。例如,如果值包含A+字符串,那么在尝试使用Object.entries时,您可以通过执行grades[value]来获取数字。我遇到的问题与最初尝试声明变量时遇到的问题相同。在Object.entries的第一次迭代中,键将是一个包含+的字符串,例如,它是完全有效的-然后,只需将该字符串及其值用于您需要的任何用途。好的,谢谢。我的最后一个问题是如何在函数中使用它,例如,如果我使用document.getElementByIdgrade1.value从textarea获取输入值,假设它是一个a+。设置这些常量会自动将输入转换为4吗?很抱歉造成混淆,我刚刚开始编程。请参阅答案的最后一部分-要访问或设置对象的属性,只需将键名放在括号中即可。例如,如果值包含A+字符串,则可以通过执行grades[value]来获取数字