JavaScript 字符串属性

标签 javascript

今天早上我遇到了一些奇怪的(遗留的?)JS 语法,可以归结为:
var example = "String".Property = "Value";

在更改此代码之前,我找不到据我所知的此实现的有效案例...

var example = "String".Property = "Value";
console.log(example);

"String".Property = "Value";
console.log("String".Property);
console.log(String.Property);

上述代码片段第一部分中的“String”.Property实际发生了什么,它在被分配后是否立即被丢弃?

最佳答案

字符串文字是字符串原始值。当后跟点 (.) 运算符时,它们会隐式转换为 String 实例。

声明

var example = "String".Property = "Value";

相当于

var example = "Value";

.Property 引用没有任何意义。

随后,

"String".Property = "Value";

对全局环境没有净影响,因为字符串常量 "String" 被转换为 String 实例并设置了属性,但随后该对象因未分配而被丢弃任何事情。

每次使用导致隐式对象创建的字符串常量“String”都会导致创建一个新的唯一对象。

关于JavaScript 字符串属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52415049/

相关文章:

javascript - 在父 View 中触发 subview 模型方法: MarionetteJs

javascript - 我无法访问服务器端的 socket.io?

javascript - onChange 内的 React 测试函数

javascript - 不使用 parseInt 对以 2 为基数的数字求和的函数

javascript - 未从下拉列表中选择任何值后如何显示错误消息?

javascript - (_.merge in ES6/ES7)Object.assign without overriding undefined values

javascript - 从 firebase 回调分配值

javascript - 使用 JQuery 在 JS Reveal 演示文稿中定位内容

javascript - Jquery - 识别上下滑动

javascript - CSS 按钮图像 :hover