javascript中string与number相加得到字符串,相减却是数字 | 您所在的位置:网站首页 › js数字相加变成字符串相加 › javascript中string与number相加得到字符串,相减却是数字 |
原理
javascript是一门弱类型语言。 弱类型语言 是相对强类型语言来说的,在强类型语言中,变量类型有多种,例如int char float boolean 等,不同的类型相互转换有时需要强制转换。 javascript只有一种类型var ,为变量赋值时会自动判断类型并进行转换,所以javascript是弱语言。 在别的编程语言中,会对变量的类型有严格的限制,之间的转换也有规定。开始定义一个变量,是整型它就只能是整型,是字符串它就必须是字符串。 而JS就不同了,变量声明的时候不用规定是什么类型的,用的时候它自己根据你赋的值判断。 javascript虽然是一门弱类型语言,但还是有自己的数据类型,其中, 基本数据类型有:number、string、boolean、undefined、null 引用类型有:object、function 举个例子: var a = "100"; var b = 11; var c = 9; console.log(a+b); console.log(typeof(a+b)); console.log(a+b-c); console.log(typeof(a+b-c));输出结果为: 10011 string 10002 number 这是因为在javascript做运算时,会进行隐式转换。a为string类型,b为numer进行相加运算,首先会先将b转换为string类型,进行字符串的拼接运算。a+b运算之后得到的是一个string类型的10011,这时再跟c去做减法,显然字符串减number是行不通的。这时就会把string类型转换为number再去做减法运算。 如有问题请联系我~ 欢迎加入QQ群: |
CopyRight 2018-2019 实验室设备网 版权所有 |