javascript - 当设置 String.locale 的值时,分配给原语的值将在 PhpStorm 中丢失

标签 javascript phpstorm

我正在使用国际化库 l10n.js并且当它试图从客户端浏览器获取值时,您不能将一个值传递给库以告诉它您想使用哪种语言进行翻译;所以有人告诉我,如果你真的想设置你需要做的事情,比如:

String.locale = 'en-GB';

就我而言,我正在做:

String.locale = $('html').attr('lang');

...就在文件的顶部。

这有效,但是在 PhpStorm 中我收到警告:

Value assigned to this primitive will be lost

我检查了this question了解他们为什么收到警告,但我不确定 - 它基本上只是告诉我 String.locale 的当前值将丢失吗?

最佳答案

这看起来像是 PhpStorm 类型推理系统的误报。

String 不是 JavaScript 语言中的原语。在这里为 String 的属性赋值是安全的,因为 String 函数是一个 object

我想分配给这个原语的值将丢失的关键思想可以用代码来描述:

> var primitive = "somestring";
> primitive.someprop = 3;
3
> primitive.someprop; 
undefined

在 JavaScript 中有 5 种基本类型:undefined、null、boolean、string 和 number。基元不是对象,它们没有属性。如果 JavaScript 检测到尝试将属性分配给原语,它确实会将原语强制转换为对象。但是这个新对象没有引用,将立即成为垃圾收集的饲料。因此分配给原语的值将丢失。 link

关于javascript - 当设置 String.locale 的值时,分配给原语的值将在 PhpStorm 中丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40785719/

相关文章:

javascript - 如何在 PhpStorm 的 js 源代码中禁用 html 检查器?

javascript - 如何在 PhpStorm 或 WebStorm 中逐行运行 JavaScript 代码?

javascript - 什么是 JavaScript 运行时?

javascript - 莫里斯图缺失一半

phpstorm - 查找和替换文件夹中的所有文件名 - PHPStorm/WebStorm

php - <reference> PHPStorm 上预期的、意外的文件结束

javascript - 如何使用 javascript 将不透明度从 0 添加到 100?

c# - 将 wcf 与 json 和 ajax 一起使用时出现 405 错误

javascript - 如何在输入时更新多个 div (javascript onkeyUp)?

php - PHP 脚本中的函数导致 502 Bad Gateway 错误