js是弱类型语言,int不是js的常见类型。
js一般是不分数据类型的吧?判断类型,还得多做一个判断。
1.c语言主要编译成机器语言,而javascript主要由解释器作为脚本来解释和执行;
2.c语言需要程序员手动管理内存(主要指堆内存的申请和释放),而javascript内存由解释器管理;
3.c语言是静态类型语言,即每个变量的数据类型在程序运行前就已经确定,运行时不能改变,而javascript是动态类型语言,运行时仍然可以改变变量的数据类型;
4.c语言中没有闭包的概念,javascript中的所有函数都用定义时就可以访问的变量形成闭包;
5.c语言不支持面向对象的特性,如"类的成员方法,"类成员的封装和"类的继承和多态,而javascript可以通过原型链和闭包实现面向对象的继承、多态和封装,ecmascript2015及以上版本的javascript在语法层面支持类的定义。
6.c语言可以通过调用系统api实现多线程,可以提高阻塞操作(主要是io)时的cpu利用率,而javascript主要是单线程的,javascript所有可能的阻塞操作都由javascript运行时提供的异步api完成。
7.有int,char,float等。在c语言中,但在javascript中只有let(先忽略var),所以c语言中的数据类型在转换时要改成let。
8.在c语言中,有一种常见的除法、除法和四舍五入的方法,比如inta5/2,结果是2。但是在js中,这个计算默认会变成2.5,c语言的写法改成让aparseint(5/2)。就像c语言一样直接用%就行了。
js中检测数据类型的四种方法
1.typ:#34number#34、#34string#34、#34boolean#34、#34undefined#34、#34object#34、#34function#34。
-:gt限制
1)空类型-gt#34对象#34
2)无论检测数组还是正则化,都返回#34object#34,所以typeof无法判断一个值是否是数组。
-gtconsole.log(typeoftypeof[12,23])/-gt#34string#34当两种或更多种类型的一起使用时,返回值必须是#34string#34。
2、instanceof/构造函数
-gt检测实例是否属于某个类。
-gt我们可以使用instanceof/constructor来检测数组和正则化。
console.log([]数组实例)//-gttrue
正则表达式的console.log(/^$/实例)//-gttrue
console.log([]instanceofobject)//-gttrue
console.log([]。构造函数数组)//-gttrue
console.log([]。构造函数object)//-gtfalse我们的构造函数可以避免在检测instanceof时使用object也成立的问题。
console.log({})。构造函数对象)