JS數據類型和JAVA數據類型的比較

目錄

一、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是弱類型語言,也就更靈活。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章