问题标签 [type-coercion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
196 浏览

ruby - 关于在 Ruby 中的块中使用块的错误 - 无法将数组强制转换为 Fixnum (TypeError)

这是关于项目欧拉问题#1。当我在 irb 中逐行运行此代码时,我得到了预期的答案,但是当我从 .rb 文件运行它时,它会抛出错误“数组不能被强制转换为 Fixnum (TypeError)”

代码:

错误信息:

我在核心 i7 Windows 7 64 位机器上运行 Ruby 版本 2.0.0p0 (2013-02-24) [x64-mingw32]

0 投票
1 回答
136 浏览

actionscript-3 - As3 Flash - 将第三方数据类型 Swf 传递到 Swf 的强制失败错误

我正在制作一个游戏,其中每个屏幕都作为单独的 swf 加载。我正在使用 Greensock 的 LoaderMax 加载 swf,但我认为这不是导致问题的原因。加载 swf 后,我可以设置子 swf 的属性,例如 String 和 MovieClip。但是,我在库路径中有一个第三方库,两个项目的 swc 完全相同。但是,当我尝试传递非系统变量时,它会给出一个错误,基本上是说“强制失败:无法将 ThisType 转换为 ThisType”。如果它们是相同的数据类型,为什么编译器要强制它们?我一定在这里遗漏了一些东西......

错误:

这是(简化的)完整处理程序。当我尝试在 swfs 之间传递 ThisType 类型的 var a_thisTypeVar 时,它会中断:

请帮忙!如何在 swf 之间传递来自第三方库的 var。我应该能够做到这一点,对吧?

0 投票
1 回答
643 浏览

javascript - 为什么一些非空字符串在 JavaScript 中评估为“假”?

根据ECMAScript 标准中的这个表,长度为 0 的字符串值应该被评估为布尔值false

那么,这些陈述怎么会评估为true

所有这些字符串的长度都大于 0。例如:

不虚伪

虽然我知道它的"0"计算结果是false因为它可以被强制转换为 numeric 0,但我无法解释为什么这些字符串是错误的。这是怎么回事?

(显然我可以使用===严格比较,但在这种情况下,在我的代码中,我需要松散比较,但是我没想到非空字符串会被认为是错误的。)

0 投票
3 回答
42 浏览

javascript - 如果我在一个字符串上使用两个否定运算符,我是否使用类型强制?

考虑以下代码:

否定运算符使用抽象操作ToBoolean来执行类型转换,但我的问题是 - 这是否涉及类型强制?

0 投票
4 回答
4348 浏览

javascript - Javascript中只有一个数字的if语句

我发现这个函数可以将数字放入分数中,我试图弄清楚一切的含义。有一件事我想不通。

这是代码:

什么if (b)意思。我知道如果 if 语句中只有变量,它正在检查变量是真还是假。这将如何应用于一个数字?这什么时候会转到 else 语句?

0 投票
1 回答
212 浏览

json - 在 Groovy 中将字符串集合强制转换为枚举集合

如果我想从 JSON 解析为我定义为包含枚举集合的域对象,我发现 Groovy 不会自动强制集合的内容,我认为无论如何都不应该期望这种情况,因为泛型是编译时关注。

如果我天真地对解析的 JSON 进行类型强制,我的集合将在运行时包含字符串,这将使集合元素与枚举的比较无论值如何都会失败。

另一种方法是覆盖枚举集合的设置器并对每个元素进行强制转换。这在以下示例中进行了说明。

重写的 setter 方法解决了我的问题,但它似乎有点香草,我想知道 Groovy 是否支持更智能的传播类型强制的方式。

0 投票
1 回答
234 浏览

javascript - 带有字符串和索引的 JavaScript 类型强制

在下面的代码片段中,为什么whatDoesItDo()函数将“失败”作为字符串返回?如果有人可以解释这种行为背后的概念,那将会很有帮助。

0 投票
2 回答
84 浏览

javascript - 日期和数字之间的相等比较不起作用

根据 ECMA 脚本标准,以下代码应该返回 true,但它不会:

11.9.3节说:

  1. 如果 Type(x) 是 String 或 Number 且 Type(y) 是 Object,则返回比较结果 x == ToPrimitive(y)。

然后,第8.12.8节说返回方法ToPrimitive的结果valueOf。这意味着我上面示例中的最后一行应该等同于:

确实返回true

为什么第一个案例不返回true

0 投票
1 回答
59 浏览

javascript - === 在 javascript 中和从 php ajax 文件返回的响应

我使用 jQuery 在 PHP 文件中通过$.post.

在 PHP 文件中,我有:

一切正常,除非我使用response===true它不起作用。true如果评论被删除,我的删除方法会返回。当我alert回复时,它显示11===true做假是正常的吗?还是有什么问题?

0 投票
2 回答
116 浏览

python - 更改用于“打印”参数类型强制的字符串类型

我怎样才能说服 Python 2print强制它的论点unicode

Python 2 的print功能,无论是语句还是函数,显然都将其参数强制转换为 bytes 类型str

变成print一个函数没有帮助;无论如何,相同的内部参数处理似乎发生在 Python 2 上:

由于我想用io.StringIO实例替换标准流(使代码在 Python 2 和 Python 3 下的测试套件中运行),所以上述失败让我死了。

使用io.BytesIO实例可以在 Python 2 上工作print,但在 Python 3 上会中断print。目标是使代码尽可能多地使用 Unicode,因此io.BytesIO不是一个可接受的解决方案。

我需要每个输出print都是 Unicode,而不是字节。

如何更改print用于强制其参数输出的类型,并改用 Unicode 文本类型unicode