What does the notation !{JSON.stringify(t("some.thing&q
What does the notation !{JSON.stringify(t("some.thing"))}; mean?
我有一个JS代码里面写着
!{JSON.stringify(t("some.thing"))};
用于i18next的翻译/国际化。但是我不理解!{...}
部分。
我知道JSON.stringify
的作用。我知道负算子!
是什么意思。我不理解它与t()函数的组合:当我使用它没有!{...}
部分时,它说
Uncaught ReferenceError: t is not defined
但是对于!{...}
部分,它正确地翻译了some.thing
部分。
some.thing
是针对不同语言的不同JSON文件中的一个键,例如:英文的JSON文件:
{
"some": {"thing": "something"}
}
和德语的JSON文件:
{
"some": {"thing": "irgendetwas"}
}
根据计算机上设置的语言,t("some.thing")
函数将返回相应的值。如果您的计算机语言设置为英语,它将返回"某事"。如果是德语,它将返回"irgendetwas"。
花括号与对象无关,感叹号与否定无关。这是JavaScript中使用的变量的jade语法:
http://naltatis.github.io/jade-syntax-docs/!
是not equal to
。
技术上来说,这可以翻译成:
如果
JSON.stringify(t("some.thing"))
输出为empty
或null
。返回true
关于JavaScript比较和逻辑运算符的更多内容
JSON。stringify是一个Javascript内置函数,用于将JSON
对象转换为字符串。反向操作为JSON.parse()。
在您的代码中,似乎t('some.thing')
是一个返回对象的缩小函数,该对象被转换为string
,然后用!
的否定运算符进行检查。
相关文章:
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 使用“+="操作人员
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- "实例范围”;TypeScript类的getter/setter
- Javascript复选框函数:;缺少:在属性id之后"
- "“;变量未引用正确的对象
- "日期“;AJAX请求返回的类型值未定义
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- "工具提示"jQuery插件坏了
- "锻造;React中的表达式
- 图像可以从源<img src=""/>.TEXT可以在没有javascript的情况下从外部
- 如何提取“;href"最近列表项中的属性值
- 显示“<script src='some.js'></脚本>"在Html文档中
- 数组方法"some"的使用:收到意外的结果