小甲鱼 发表于 2025-6-24 03:30:11

「快问快答」第007讲:类型转换

<iframe
    src="https://quiz.ilovefishc.com?bank=js0623&time=12"
    width="100%"
    height="800"
    frameborder="0"
    allowfullscreen
    scrolling="no"
    allow="clipboard-write"
    style="border-radius:12px;box-shadow:0 2px 16px #42929633;">
</iframe>

小甲鱼 发表于 2025-6-25 12:00:53

@FishC 下列对类型转换的描述,正确的是?
A. 显式类型转换是由JavaScript自动完成
B. 隐式类型转换通常由开发者手动指定
C. 隐式类型转换由引擎自动完成
D. JavaScript没有隐式类型转换

FishC 发表于 2025-6-25 12:01:42

小甲鱼 发表于 2025-06-25 12:00
@FishC 下列对类型转换的描述,正确的是?
A. 显式类 ...

正确答案是 C。

在JavaScript中,类型转换分为显式和隐式两种:
- 隐式类型转换是由引擎自动完成的,不需要开发者干预。例如,在表达式 "5" + 2 中,数字 `2` 会被自动转换为字符串,结果变成 "52"。
- 其他选项错误:
- A:显式类型转换是由开发者手动指定的(如使用 Number("5")),不是自动完成。
- B:隐式类型转换是引擎自动处理的,开发者无需手动指定。
- D:JavaScript存在隐式类型转换(常见于运算或比较中)。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

小甲鱼 发表于 2025-6-25 12:28:00

@FishC 执行如下表达式后,n + s的结果是?

n = 520;
s = "1314";
n + s

A. 1834
B. 5201314
C. NaN
D. 520

FishC 发表于 2025-6-25 12:28:53

小甲鱼 发表于 2025-06-25 12:28
@FishC 执行如下表达式后,n + s的结果是?

n = 52 ...

在 JavaScript 中执行表达式 `n + s` 时,规则如下:
1. 当数字与字符串相加时,数字会被自动转换为字符串
2. 然后进行字符串拼接操作

具体步骤:
- `n = 520`(数字类型)
- `s = "1314"`(字符串类型)
- `n + s` → 将 `520` 转为字符串 `"520"`,再拼接 `"1314"` → 得到 `"5201314"`

结果类型是字符串,但选项显示为数字形式。正确答案是:
B. 5201314

注意:在 Python 中会报错,但根据题目分号和选项特征,应使用 JavaScript 规则判断。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

小甲鱼 发表于 2025-6-27 21:00:44

@FishC 下列哪一个函数不会将字符串'123'转换为数字123?
A. Number('123')
B. parseInt('123')
C. parseFloat('123')
D. String('123')

FishC 发表于 2025-6-27 21:01:11

小甲鱼 发表于 2025-06-27 21:00
@FishC 下列哪一个函数不会将字符串'123'转换为数字12 ...

正确答案是:D. String('123')

解析:
- A. Number('123'):将字符串转换为数字,结果是数字123。
- B. parseInt('123'):将字符串解析为整数,结果是数字123。
- C. parseFloat('123'):将字符串解析为浮点数,结果是数字123.0(仍是数字类型)。
- D. String('123'):将输入转换为字符串,结果是字符串'123',而不是数字123。

示例验证:

console.log(typeof Number('123'));       // 输出 "number"
console.log(typeof parseInt('123'));   // 输出 "number"
console.log(typeof parseFloat('123'));   // 输出 "number"
console.log(typeof String('123'));       // 输出 "string" (仍是字符串)


结论:只有 D 返回字符串类型,未转换为数字。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

小甲鱼 发表于 2025-6-27 21:04:30

@FishC 关于Boolean('')的结果,下列哪一项是正确的?
A. true
B. false
C. null
D. undefined

FishC 发表于 2025-6-27 21:04:58

小甲鱼 发表于 2025-06-27 21:04
@FishC 关于Boolean('')的结果,下列哪一项是正确的? ...

在 JavaScript 中,Boolean('') 的转换规则如下:

1. 空字符串 '' 属于 **falsy 值**(假值)。
2. 所有 falsy 值在布尔转换中都会变成 false。

验证代码:

console.log(Boolean(''));// 输出 false


因此正确答案是:
B. false

其他选项解析:
- A. true:错误,空字符串不是 truthy 值
- C. null:错误,Boolean(null) 也是 false,但题目问的是 ''
- D. undefined:错误,Boolean(undefined) 也是 false,但题目问的是空字符串

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

小甲鱼的二师兄 发表于 2025-6-28 01:17:43

@FishC 执行如下表达式后,n + s的结果是?

n = 520;
s = "1314";
n + s

A. 1834
B. 5201314
C. NaN
D. 520

FishC 发表于 2025-6-28 01:18:19

小甲鱼的二师兄 发表于 2025-06-28 01:17
@FishC 执行如下表达式后,n + s的结果是?

n = 52 ...

在JavaScript中执行表达式 `n + s` 时:

- `n` 是数字类型(值为520)
- `s` 是字符串类型(值为"1314")
- 当数字与字符串相加时,JavaScript会将数字隐式转换为字符串,然后进行字符串拼接

因此:
1. 数字 `520` 被转为字符串 `"520"`
2. 与字符串 `"1314"` 拼接为 `"5201314"`

最终结果是字符串 `"5201314"`,对应选项 **B**。

验证代码如下:

n = 520;
s = "1314";
console.log(n + s); // 输出 "5201314"
console.log(typeof (n + s)); // 输出 "string"


其他选项错误原因:
- A:1834(若两者都是数字相加的结果,但s是字符串)
- C:NaN(未出现非数字操作)
- D:520(未忽略字符串部分)

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 「快问快答」第007讲:类型转换