1
zythum 2016-03-04 11:21:29 +08:00
如果你需要明切。可以使用 parseInt , 和 toString 方法明文转换。如果你想隐式转化就不要说 js 解释器坑,你换成哪个弱类型语言都有隐式转化。
|
2
hronro 2016-03-04 11:26:16 +08:00
这是坑么
|
3
realpg OP @zythum
我没说我自己没有问题,我只是觉得这个放到弱类型语言上也是反常规的转换方式。 我测试了几个弱类型语言,没见过 js 解释器这样的,大多数都是跟我想象的一样, int 和 string storaged integer 相加,转换成 integer 进行处理 |
4
shunia 2016-03-04 11:27:15 +08:00
string + int 为什么要等于 int ?百撕不得骑姐
|
5
shiji 2016-03-04 11:27:28 +08:00 via Android
还是 PHP 好哈。。弱类型
|
6
yixiang 2016-03-04 11:27:34 +08:00
自己不熟悉一门语言导致的错误的原因是自己不熟悉这门语言。
|
7
realpg OP 好吧,我错了,你们都了解 js ,我不了解。
我 PHP 病犯了,我向广大程序员道歉,我拉低了平均技术水平,我错了,以后我改。 这贴到此为止吧。 |
9
lxy 2016-03-04 11:33:26 +08:00
js 是我见过坑最多的语言……
'5' + 1 // '51' '5' + true // "5true" '5' + false // "5false" '5' + {} // "5[object Object]" '5' + [] // "5" '5' + function (){} // "5function (){}" '5' + undefined // "5undefined" '5' + null // "5null" |
10
qianleilei 2016-03-04 11:35:25 +08:00
明明知道是弱类型为何不显示的转化?要是写 PHP 我也会强制转一下,有强迫症吧
|
11
oott123 2016-03-04 11:39:57 +08:00
js 里,字符串和任何玩意儿相加结果都是字符串。
这也常常被用来做字符串转换… |
12
zythum 2016-03-04 11:40:37 +08:00
|
13
zythum 2016-03-04 11:45:28 +08:00
@lxy 字符串和任何相加结果都是字符串。会去调那个东西的 toString 或者 valueOf 。具体流程忘记了。还是翻 ECMA 规范吧。
|
14
yeyeye 2016-03-04 11:46:14 +08:00
最近写了个 PHP 程序……写了几个小时然后直接 debug ,纳尼!直接输出了 Done (我写在尾部的 echo ),没错?不可能啊!怎么可能无错!后来才发现是 php.ini 关闭了……
语法上没有错……但是但是……连接字符串我用的是+,于是输出了一堆奇奇怪怪的字符串(+运算符导致字符串拼接时顺序错乱了),没搞懂原因的时候整个脑袋都错乱了。 |
15
jugelizi 2016-03-04 11:58:32 +08:00
不同浏览器还产生不同结果
有次看到阿里的笔试题 在 IE 和 chrome 的结果不一样 标准答案是错的 所以写 JS 一定要规范 |
16
ttma1046 2016-03-04 12:05:53 +08:00
string 加任何玩儿,都是把任何玩儿先变成 string, 再做 concat.
百撕不得骑姐楼主怎么略懂 JS 的 ? |
18
bramblex 2016-03-04 12:17:37 +08:00
猜测楼主其他语言也写不好……
假设楼主是写强类型语言的,不应该犯这种字符串和数字相加的错误。 假设楼主是写弱类型语言的,哪个弱类型语没告诉你不要用隐式类型转换的? |
19
aivier 2016-03-04 12:34:23 +08:00
每次写 C#转换数据类型都觉得很烦人....
|
20
xuboying 2016-03-04 12:38:47 +08:00
楼主可以来写 perl
$x="1" ; $y = $x + 0; ### $y = 1 字符串拼接是用小数点 "." |
21
xuboying 2016-03-04 12:40:36 +08:00
无论是 perl5 还是 perl6 都不使用加号做拼接,避免这种低级错误
|
22
xcodebuild 2016-03-04 12:41:53 +08:00 via Android
|
23
realpg OP @codefalling
没啥了,我也不是干这个的,其实就是我要录一堆数据,怕盲打录错,用 chrome 的 console 注入了个判断。 而且出现问题第一时间我也马上明白了是哪里有问题。 真要写这个,测试啊,设计严谨性啊,都会好好处理,而且估计也用不上我写啥复杂的 js 。 |
24
bramblex 2016-03-04 13:10:56 +08:00
|
25
aprikyblue 2016-03-04 13:52:11 +08:00
依赖隐性转换,还是字符串和数字运算。。怪 js 咯
|
26
jin5354 2016-03-04 14:12:33 +08:00
连隐式类型转换的规则都不清楚,还有自信说略懂?
|
27
aaaron7 2016-03-04 14:21:14 +08:00 1
动态类型一时爽,重构起来火葬场
|
28
iscraft 2016-03-04 14:40:49 +08:00
码奴的道路其实是一场雷区内的前行
大大前天无聊 在 rpi2 中 port 装了 php7 nginx+fpm 想看下 结果 200 ok 但页面完全空白 只是一个 phpinfo 都运行不了 百思不得其解 搞到凌晨 5 点仍无结果 放弃 睡觉去 隔了一天第三天早上 突然灵机一动 php.ini 里看了一眼 short_open_tag 没打开...... |
32
zodiac1111 2016-03-05 00:04:25 +08:00
|
33
xuyinan503 2016-03-05 09:38:27 +08:00
|