JavaScript加法

新鑫S 2019-01-17 09:28:08
JavaScript加法

在第三个input标签里计算出第一、第二个input标签的和

<input id="A" value="1">
<input id="B" value="2"/>
<input id="C"/>


先展示一个常见的错误方法

var A = $("#A").val();
var B = $("#B").val();
var C = A + B;
$("#C").val(C)


这样写“C”的值是为12,原因是在JavaScript中“+”可以表示为拼接字符串,然而“A”、“B”的value值正是字符串类型,首先需要将A、B转换为数字类型

正确的方法(1)
var A = $("#A").val();
var B = $("#B").val();
var C = Number(A) + Number(B);
$("#C").val(C)

正确的方法(2)
var A = $("#A").val();
var B = $("#B").val();
var C = parseFloat(A) + parseFloat(B);
$("#C").val(C)

方法(1)中的Number()是将字符串转换成数字类型。
方法(2)中的parseFloat()是解析一个字符串,判断字符串中的首个字符是否是数字,如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。
---------------------
作者:heart_温存
来源:CSDN
原文:https://blog.csdn.net/weixin_44547599/article/details/86519492
版权声明:本文为博主原创文章,转载请附上博文链接!
...全文
194 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
使用 ts,那么这个帖子这类,就很清楚了。因为 ts 会清楚地告诉程序员,A 跟 B 是 string 类型,给出结果类型推断。甚至会在碰到将 A+B 直接赋值给一个显示声明为 number 类型的变量时,编译器无法通过编译。但是来自底层的麻烦是,对于 ts 来说,运行时的类型跟编译器判断的不一致,非常尴尬!
  • 打赏
  • 举报
回复
TypeScript 可以解决编程者自身的编译需求,但是解决不了 js 底层的一些固有问题。比如说定义一个 number 类型的变量,运行时它的值完全有可能成为 string、NAN、甚至 function 等等。但是 ts 的编译器只能解决编程时的类型检查类型,对于运行时的这种诡异变化束手无策,编程是你去检查一个 number 类型的变量值是不是 function 或者数组,逻辑上荒唐而 ts 也编译不过去(除非你把变量变为 <any> 声明类型再去检查类型)。所以这是一个来自底层的麻烦。
wanghui0380 2019-01-18
  • 打赏
  • 举报
回复
咋说呢,js曾经被称为最弱智的语言,最著名的就是“Wat is Wat”

不过随着Typescript,Nodejs兴起他又成了好语言了
丰云 2019-01-18
  • 打赏
  • 举报
回复
引用 2 楼 以专业开发人员为伍 的回复:
javascript 是类型不靠谱的语言。一个过程中的变量,可能随时变为数字、字符串、NAN、undefined、null、Array、javascript Object 等等等等,值是完全不靠谱的,必须自己编程检查类型。
大佬,要适应这个社会的变化。。。 我反正很喜欢js语法,可以轻松做到很多静态语言做不到的事情。 很多静态语言必须用反射才能完成的事情,js可以直接操作
EdsionWang 2019-01-18
  • 打赏
  • 举报
回复
CSDN除了论坛还有博客功能的,想转载可以去博客。
  • 打赏
  • 举报
回复
javascript 是类型不靠谱的语言。一个过程中的变量,可能随时变为数字、字符串、NAN、undefined、null、Array、javascript Object 等等等等,值是完全不靠谱的,必须自己编程检查类型。
  • 打赏
  • 举报
回复
weixin_44569951 2019-01-18
  • 打赏
  • 举报
回复
没有资本你拿什么混社会👍
楠小南 2019-01-18
  • 打赏
  • 举报
回复
JS:我是谁?我在那里?我在干什么?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧