赋值后的感叹号:A = B ! C
Exclamation mark behind assigned value: A = B ! C
我正在阅读公司 javaScript 的一篇文章,我发现了以下内容:
seriesCode = pageRecord.getProperty('seriesCode')!'XXX'
这是否意味着如果第一个值是 NULL
第二个值应该放在 seriesCode 中?
嗯,你的代码是错误的,无法解析。你甚至可能会遇到一个奇怪的无法理解的错误。
Does it mean that if first value is NULL
the second on should be placed in seriesCode
?
不对,只是错了,无法被javascript理解。 !
是一个一元运算符,因此如果您尝试将它用作二元运算符(在两个值之间),它可能会以奇怪的方式失败。
您的要求是使用 ||
运算符完成的:
seriesCode = pageRecord.getProperty('seriesCode')||'XXX';
您可能会看到 !
一元运算符的技巧,尽管它是双感叹号:
existsSeriesCode = !!pageRecord.getProperty('seriesCode');
这里的想法是,使用第一个感叹号,您将对象转换为布尔值,其中 false
表示该变量是对实例的引用,true
表示变量包含 null
或 undefined
。然后第二个感叹号再次否定它,这意味着 true
包含一个实例,false
包含 undefined
或 null
.
看起来像 FreeMarker 模板语言,是的,!
运算符出现在操作数的右侧时,如果左侧表达式是 null
或对的引用,则给出默认值一个缺失的变量。
我正在阅读公司 javaScript 的一篇文章,我发现了以下内容:
seriesCode = pageRecord.getProperty('seriesCode')!'XXX'
这是否意味着如果第一个值是 NULL
第二个值应该放在 seriesCode 中?
嗯,你的代码是错误的,无法解析。你甚至可能会遇到一个奇怪的无法理解的错误。
Does it mean that if first value is
NULL
the second on should be placed inseriesCode
?
不对,只是错了,无法被javascript理解。 !
是一个一元运算符,因此如果您尝试将它用作二元运算符(在两个值之间),它可能会以奇怪的方式失败。
您的要求是使用 ||
运算符完成的:
seriesCode = pageRecord.getProperty('seriesCode')||'XXX';
您可能会看到 !
一元运算符的技巧,尽管它是双感叹号:
existsSeriesCode = !!pageRecord.getProperty('seriesCode');
这里的想法是,使用第一个感叹号,您将对象转换为布尔值,其中 false
表示该变量是对实例的引用,true
表示变量包含 null
或 undefined
。然后第二个感叹号再次否定它,这意味着 true
包含一个实例,false
包含 undefined
或 null
.
看起来像 FreeMarker 模板语言,是的,!
运算符出现在操作数的右侧时,如果左侧表达式是 null
或对的引用,则给出默认值一个缺失的变量。