目录
一、JS的数据类型
(一)运算符typeof
(二)Js中比较
(三)undefined类型
(四)Number类型
(1)Number类型包括那些值?
(2)相关函数
(五)Boolean类型
(六)string类型
(七)object类型
二、JAVA中的数据类型
三、JS 和JAVA的比较:
一、JS的数据类型
(一)运算符typeof
JS中有一个运算符叫做typeof,这个运算符可以在程序的运行阶段动态的获取变量的数据类型。
语法格式:
Typeof 变量名
(二)Js中比较
JS当中比较字符串是否相等使用“==”完成,没有equals,这点是和JAVA的区别。(这一点以后我会写博客【JAVA中equals和==的区别】)
Function sum(a,b){
if(typeof a=="number"&& typeof b =="number"){
return a+b;
}else{
alert("请输入数字");
}
}
(三)undefined类型
Undefined类型只有一个值,这个值就是Undefined,当一个变量没有手动赋值,系统默认Undefined,或者也可以手动给一个变量手动赋值undefined;
Var I;//undefined
Var k = undefined;//undefined
Var y = "undefined";//"undefined"
其中i和k是相同的,但是Y是不相同的。
(四)Number类型
(1)Number类型包括那些值?
-1 0 1 2 3.12 。。。 NaN Infinity
这个和JAVA相比较,JAVA需要用6种类型来表示,而JS只需要一个Number即可,
这个和JAVA相比较,JAVA需要用6中数据类型来表示,而JS只需要一个Number即可。
//关于NaN(表示 Not a Number,不是一个数字,但属于Number类型)
//什么情况下结果是NaN呢?
//运算结果本来应该是一个数字,最后算完不是一个数字的时候,结果是NaN
Infinity表示无穷大(在除数为0的时候,结果为无穷大)。
(2)相关函数
1)isNaN函数
结果是true表示不是一个数字,结果是false表示是一个数字。
Function sum(a,b){
If(isNaN(a)||isNaN(b)){
Alert("请输入数字");
Return;
}
Return a+b;
}
2) paraseInt()函数,可以将字符串转换成小数而且取整
Alert(parseInt("3.99999"))//3
3) paraseFloat()函数
Alert(parseFloat("3.2"+1))//4.2
4) Math.ceil()向上取整
Alert(math.ceil("2.1"));//3
(五)Boolean类型
1)、JS中的布尔类型永远只有两个值true和false(这一点和JAVA是一样的)。
2)、在boolean类型中有一个函数叫做:Boolean();
语法格式:
Boolean(数据)
Boolean()函数的作用是将非布尔类型转换成布尔类型。
If(username){
Alert( username+"欢迎你")
} else {
Alert("username不能为空")
}
(if 后面自动转换成boolean)
Boolean()函数,有就转换成真,没有就转换成false
(六)string类型
1、在JS中字符串可以使用单引号,也可以使用双引号。
Var s ='test';
Var s1 ="test";
2、在JS当中,怎么创建字符串对象呢?
两种方式:
第一种: var s = "abc";
第二种(使用JS内置的支持类string), var s2 = new String("abc");
需要注意的是:string是一个内置类,可以直接用,string的父类是object
3、(重点)无论是大还是小,他们的属性和函数都是通用的。
4、关于string类型的常用属性和函数?
常用属性:
Length 获取字符串长度
常用函数:
Indexof 获取指定字符串在当前字符串中第一次出现处的索引
lastIndexof 获取指定字符串在当前字符串中最后一次出现处的索引
Replace 替换(只替换一次,如果想都替换可以使用正则表达式)
Substr 截取字符串
subString 截取子字符串
tolowerCase 转换小写
toUpperCase 转换大写
split拆分字符串
//考点:经常问substr和substring的区别?
//substr(startIndex,length)
Alert("abcdefxyz",substr(2,4));//cdef
//substring(startIndex,endIndex) 注意:不包含endIndex
Alert("abcdefxyz",substring(2,4));//cd
//小string(属于原始类型string)
Var x ="abc";
Alert(typeof x); //"string"
//大string(属于object类型)
Var y = new string("abc");
Alert(typeof y); //"object"
(七)object类型
1) object类型时所有类型的超类,自定义的任何类型,默认继承Object。
2)Object类包括哪些属性?
prototype属性(常用),作用是给类动态的扩展属性和函数。
constructor属性
3)Java中Object常用方法有哪些?
Tostring,equals,hashcode
4)Object类包括哪些函数?
Tostring();
Valueof();
toLocaleString()
5)在JS当中定义的类默认继承Object,会继承Object类中所有的属性以及函数,
换句话说,自己定义的类中也有Prototype属性。
6)在JS当中怎么定义类?怎么New对象?
第一种方式:
Function 类名(形参){
}
第二种方式:
类名=function(形参){
}
New 对象?
//Var 对象名 =new 类名();
New 构造方法名(实参);//构造方法名和类名一致
深入理解Object
//JS 中的类的定义,同时又是一个构造函数的定义
//在jS中类的定义和构造函数的定义是放在一起完成的。
Function User(a,b,c){
//a,b,c 属于局部变量
//声明属性(this表示当前对象)
//User类中三个属性:sno/sname/sage
This.sno=a;
This.sname=b;
This.sage=c;
}
//创建对象
Var u1 = new User(111,"张三",23)
//访问对象的属性
Alert(u1.sno);
Alert(u1.sname);
Alert(u1.sage);
//给String 扩展一个函数
String.prototype.suiyi=function(){
Alert("这是给String类型扩展的一个函数,叫做suiyi");
}
Abc.suiyi();
二、JAVA中的数据类型
基本数据类型:
基本数据类型共有八种,其中六种数据类型与两个非数值类型。基本数据信息如下:
那么Java中string数据什么数据类型?
string是属于引用数据类型,因为string是一个类。
三、JS 和JAVA的比较:
这俩面JS一共有三个构造方法。这一切都是因为JAVA是强类型,JS是弱类型语言导致的。
(一)Null NaN undefined的区别?
Null //boject
NaN //number
Undefined//undefined
(1)数据类型不一样
(2)null和undefined可以等同
Alert(null == NaN); //false
Alert(null == undefined); //true
Alert(undefined == NaN); //false
//在JS当中有两个比较特殊的运算符
// == (等同运算符)
// ===(全等运算符,既判断值是否相等,又判断数据类型是否相等)
总之,JAVA和JS的数据类型,因为JAVA是强类型语言,所以分的会更细一点,JS是弱类型语言,也就更灵活。