首页 > 试题广场 >

以下表达式不会出现错误的有()

[不定项选择题]
以下表达式不会出现错误的有()
  • 2.toString()
  • 2..toString()
  • 2 .toString()
  • (2).toString()

数字后面.会被解析为小数点,而B、C、D则规避了这种情况。

发表于 2019-10-07 19:02:10 回复(7)

就**离谱

发表于 2020-09-20 21:28:44 回复(13)
这里JS引擎不知道这里的 的小数点还是调用toString方法,于是解析成(2.)toString。
于是就报错了,所以说整数调用toString就会报错。
发表于 2019-09-10 17:19:51 回复(3)
2.toString()将会优先将小数点解析为数字小数点
2..toString()因为连续的两个小数点不符合number的格式规则,第二个小数点才会被解析为调用方法
发表于 2019-09-26 09:53:36 回复(1)
选择BCD
运行结果:

发表于 2019-09-07 16:59:08 回复(0)
关于这道题 我想到了以下的知识点
(1) 装箱 js并不是一切变量都是对象的语言 toString方法实际上是在对象上的 当我们对一个字面量直接使用这些在对象上的方法,js将会执行装箱操作调用new Number(或者是别的构造函数)
(2) 紧跟数字的.优先被认为是小数点
2.toString()之所以会报错,是因为在这里的 . 发生了歧义。它既可以理解为小数点,也可以理解为对方法的调用,问题就出在这里,我们想要后一种理解,而实际上,因为这个点紧跟于一个数字之后,按照规范,解释器就把它判断为一个小数点。我们也可以看下抛出的异常信息:“标识符紧跟于一个数字字面量之后。”说明 2.toString() 在解释器看来其实是:(2.)toString();所以只要再加上一个点就可以了:2..toString(),第一个点是数字的一部分,2. 被自动解释为整数值 2,而第二个点则是调用方法。


发表于 2020-03-23 08:05:33 回复(1)
.和数字在一块 会优先被任务是数字的小数点 而不是调用方法 所以toString() 前面没有点就报错

bcd  三种写法 都是为了区分 .toString()   调用方法
发表于 2020-02-22 10:07:10 回复(0)

为什么会报错,因为出现了歧义
2.toString(); 可以看成数字2调用toString,也可以看成2.(小数点),最后相当于这样(2.)toString当然会报错

  • 还有一点,原始数据 没有属性,也不能存储属性!!!
  • 所以会有下面一次包装类型的转化
    ```js

2..toString() => (2.).toString(); ==> Number(2).toString();

其他的调用方式也是类似的,都是`避免了歧义` 
发表于 2022-03-25 21:55:22 回复(0)
<p>我只想知道c,2后面多出个空格为什么是对的</p>
发表于 2021-01-07 23:21:30 回复(0)
这里的.有两个功能,跟数字连接起来判断是不是小数中的小数点,或者是调用方法,一般有了数字之后紧跟着.会把.当成小数点。那么A选项的toString()方法前就没有.来进行调用了
发表于 2020-08-06 15:08:46 回复(0)
.和数字在一块 会优先被任务是数字的小数点 而不是调用方法 所以toString() 前面没有点就报错

bcd  三种写法 都是为了区分 .toString()   调用方法
发表于 2022-07-19 23:00:13 回复(0)
长了眼睛的我竟然选了正确的emmmm
发表于 2022-04-01 09:14:46 回复(0)
A跟C不都是一样的吗?
发表于 2021-06-02 20:35:45 回复(0)
这个题究竟是要考察什么呢?我没看懂
发表于 2023-09-06 12:12:12 回复(0)
整数后面带“.” js引擎会将其解析为小数点
发表于 2023-05-21 17:44:03 回复(0)
js语法简直非人类,太难了我
发表于 2022-12-11 18:45:34 回复(0)
我眼瞎了??a跟c有什么区别?
发表于 2021-12-03 20:37:39 回复(1)
.会优先被解析成小数点
发表于 2021-09-09 17:05:41 回复(0)
toString会优先解析小数点,A中数字后面.会被解析为小数点
编辑于 2021-06-04 22:48:03 回复(0)
直接跟在数字后面的.会被解析成小数点
发表于 2021-03-10 09:23:33 回复(0)