相关疑难解决方法(0)

用空格混淆变量名

我的目标不是在真正的网站中使用它,它是为了知识和乐趣。

我想写一些类似的东西:

var  =3;
alert( );
Run Code Online (Sandbox Code Playgroud)

(不是空格,而是特定的 unicode 字符)

是否可以?如果没有,是否有等效的东西?

javascript variables syntax

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

JavaScript 变量名正则表达式

我正在尝试编写一个正则表达式,它将用下划线替换 JavaScript 变量名称中的所有无效字符(在 Java 中)。

我想做的是:

String jsVarName = "1inva>idName".replaceAll("[a-zA-Z_$][0-9a-zA-Z_$]", "_");
Run Code Online (Sandbox Code Playgroud)

并最终得到一个名为 的变量_inva_idName

我正在努力做的是弄清楚如何使第一个角色与其他角色不同。

[a-zA-Z_$][0-9a-zA-Z_$]是我想要的字符,但我无法弄清楚将它们连接到正确的语法中。我知道 JS var 名称可以是完整的 unicode,但我只关心 ASCII。

java regex

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

为什么这段代码抛出ReferenceError:test没有定义?

var te?st = 1
console.log(test)
Run Code Online (Sandbox Code Playgroud)

尝试运行这个简单的代码.它给出了错误:ReferenceError: test is not defined尽管我定义了该变量.为什么会这样?

javascript unicode language-features language-design referenceerror

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

动态添加名称以数字值引导的变量

我注意到,如果我尝试使用带有数字值的键名创建一个对象,则会抛出一个错误(这与此处列出的JavaScript命名一致:哪些字符对JavaScript变量名有效?).但是,我注意到,如果我这样做,我仍然可以动态添加这样的变量名

失败:

object.1foo = "bar";
Run Code Online (Sandbox Code Playgroud)

失败:

object = {
  1foo: "bar"
}
Run Code Online (Sandbox Code Playgroud)

成功:

object["1foo"] = bar;
Run Code Online (Sandbox Code Playgroud)

这是为什么?

javascript

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

如何用jquery中使用的另一个字符替换'dollar'符号?

如何将jquery中使用的美元符号('jquery'的别名)更改为另一个字符.例如

$("#id").css("height","210px");
Run Code Online (Sandbox Code Playgroud)

我想改成这个

*("#id").css("height","210px");
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

JavaScript 中测试字符串是否为有效标识符名称的方法

测试字符串是否可以通过正确的变量名称的最可靠方法是什么?我脑子里有几个解决方案,但我不太确定该使用哪一个:

// using <iframe> helper
// assuming I have hidden <iframe> inserted in document.body{}:
var _hidden_iframe_id = "iframe"+ Date.now();
var _fr = document.createElement("iframe");

_fr.setAttribute("id", _hidden_iframe_id);
_fr.setAttribute("name", _hidden_iframe_id);
_fr.style.display = "none";

document.body.appendChild(_fr);


// and .eval()-ing a string as a variable in <iframe>'s .contentWindow{}:

String.prototype.isidentifier = (function (owns, _frames, rnd, ifr_name) {

  // use private cache to save evaluated results
  var cache = {};

  // main
  return function () {

    // guard against code alike strings
    // takes everything up to left …
Run Code Online (Sandbox Code Playgroud)

javascript regex identifier

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

JavaScript中的有效属性名称,属性赋值和访问权限

更新的问题

究竟什么是Javascript中有效的属性名称?各种财产分配方法有何不同?属性名称如何影响属性访问?

注意

我原来的问题(见下文)的答案有助于澄清一些事情,但也开辟了一堆新的蠕虫.既然我已经有机会对JavaScript更加熟悉了,我相信我已经能够解决很多问题了.

由于我很难将这些信息合并到一个解释中,我认为扩展我的原始问题可能会有所帮助,并尝试回答它.

原始问题

最初,MDN JavaScript指南(对象文字)存在一些混淆.具体来说,我想知道为什么他们声称如果属性名称不是有效的JavaScript标识符,那么它必须用引号括起来.然而,他们提供了示例代码,表明可以使用数字7 - 没有引号 - 作为属性名称.

事实证明,指南只是忽略了一个重要部分,Pointy对其进行了更新(粗体更改):

如果属性名称不是有效的JavaScript标识符或数字,则必须用引号括起来.

我还想知道为什么允许属性名称偏离适用于标识符的"可能不以数字开头"规则.这个问题实际上揭示了我对属性名称的完全误解,并且是导致我做更多研究的原因.

javascript properties object accessor identifier

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

函数名称等中允许使用哪些字符?

正如标题所说,标识符(函数、变量和记录字段名称)中允许使用哪些字符?aöø一切似乎都很好,'_9如果不是第一个字符也是如此。<$;%不要。它是否在某处记录了哪些范围/块的 unicode 字符和符号是允许的?

后续问题:中缀运算符中允许使用哪些字符?

elm

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

JSDoc:属性名称

有没有办法对jsdoc中带有“+”等特殊符号的属性进行正确的描述?

例子:

/**
  * @typedef {Object} TestObject
  * @property {string} "id+name"
  */
Run Code Online (Sandbox Code Playgroud)

在这种情况下,“id+name”似乎是无效语法。

javascript documentation jsdoc jsdoc3

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

解构属性名称中包含连字符的对象

有没有办法让destructure对象的属性名称中包含连字符。我花了一段SyntexError时间这样做(这是合理的,因为 JS 不允许变量名带有 a hyphen)。

let human= {
    "first-name":"John",
    "last-name":"Doe",
    age:150
}

let {age}= human;
// let {"first-name"}= human;//error
// let {first-name}= human;//error

console.log(age)
Run Code Online (Sandbox Code Playgroud)

javascript

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