C语言与javascript的不同之处
介绍
最近会把一些C语言的小程序,小算法移植到js中,这里简单记录一下两种语言的不同之处。
数据类型
C语言中有int,char,float等等,而js中只有let
(先忽略var
),所以转换过程中遇到C语言中的数据类型要换成let
。
除法
C语言中常用一种除法整除取整
比如int a = 5/2;
结果就是2
。而在js中这样计算默认会变成2.5
,要达到C语言的写法要改成let a = parseInt(5/2)
。
除法取余
和C语言一样直接使用%
就可以了。
取反
C语言中并没有真正的布尔类型,一般是用0作为假,非0作为真
,在if判断时会和数字类型混用,比如:
int hasHouse = 0;
if (!hasHouse) {
doMakeMoney();
hasHouse = !hasHouse;
}
如果js也这样写的话,
int hasHouse = 0;
if (!hasHouse) {
doMakeMoney();
hasHouse = !hasHouse;
}
最后hasHouse会变成true
或者false
这样的bool类型,而不像C语言只会在0和1之间变化。js处理这种情况最后把只用作bool的,在js中改成bool类型
int hasHouse = false;
if (!hasHouse) {
doMakeMoney();
hasHouse = !hasHouse;
}