首頁  >  文章  >  web前端  >  js基礎提升學習之基本資料類型

js基礎提升學習之基本資料類型

php中世界最好的语言
php中世界最好的语言原創
2018-06-04 14:00:151633瀏覽

這次帶給大家js基礎提升學習之基本資料型別,使用js基本資料型別的注意事項有哪些,以下就是實戰案例,一起來看一下。

javascript的資料型別分為兩大類型:

1、基本資料型態:

      字串(String)

      數字(Number):

      布林(Boolean):true、false

      undefined:未定義

##      null:空##p# 10),回傳false,代表的是不是個數字,你傳數字就報錯)

2、引用資料型態(物件/符合資料型別):

       繼承Object

#js中物件是一組屬性與方法的集合。這裡就要說到引用類型了,引用類型是一種資料結構,用於將資料和功能組織在一起。引用型別有時也被稱為物件定義,因為它們描述的是一類物件所具有的

屬性和方法

基本資料型態:

在第一個JS裡面,我們發現過轉化,具體如何轉化?有什麼的順序和規則,進行闡述:

轉換原因:python和javascript是弱資料型語言,就會轉換

優先權等級:string  >float  >int  > boolean

舉個簡單的例子:

1、字串的優先權等級比數字高,數字就會被轉換為字串,就可以輸出、


#2、浮點比整數型高,輸出12.3

3、isNaN 方法是用來判斷不是一個數字的

例如是數字嗎?

是,於是結果就是Flase


#4、布林:

isTrue是變數名



----------------------- ----------------------------------基本資料類型補充分析----------- ------------------------------------------------

typeof 運算子

由於js中的變數是鬆散類型的,所以它提供了一種偵測目前變數的資料型別的方法,也就是typeof關鍵字.

type of   123   //Number
type of   'abc'  //String
type of    true       //Boolean
type of    undefined   //Undefined
type of    null        //Object
type of    { }           //Object
type of    [ ]           //Object
type of    console.log()       //Function

null型別進行typeof運算子後,結果是object,原因在於,null型別被當作一個空物件參考。

1.Number型別

Number型別包含整數與浮點數(浮點數數值必須包含一個小數點,且小數點後面至少有一位數字)兩種值。

NaN:非數字型。特點:① 涉及的 任何關於NaN的操作,都會返回NaN   ② NaN不等於自身。

isNaN() 函數用來檢查其參數是否是非數字值。

isNaN(123)  //false   isNaN("hello")  //true

2.String類型

字串有length屬性。

字串轉換:轉型函數String(),適用於任何資料類型(null,undefined 轉換後為null和undefined);

toString()方法(null,defined沒有toString( )方法)。

3.Boolean類型

此型別只有兩個值,true和false

4.Undefined型別

只有一個值,即undefined值。使用var宣告了一個變量,但未給變量初始化值,那麼這個變數的值就是undefined。

5.Null型別

null型別被看做空物件指針,前文說到null型別也是空的物件引用。

6.Object型別

js中物件是一組屬性與方法的集合。這裡就要說到引用類型了,引用類型是一種資料結構,用於將資料和功能組織在一起。引用型別有時也被稱為物件定義,因為它們描述的是一類物件所具有的屬性和方法。

三大引用型別:

1.Object型別

我們看到的大多數型別值都是Object型別的實例,而建立Object實例的方式有兩種。

第一種是使用new運算元後面跟著Object

建構子

,如下圖

var person = new Object();
person.name = "Micheal";
person.age = 24;
第二種方式是使用物件字面量表示法,如下所示
var person = {
  name : "Micheal",
  age : 24
};

2.Array類型

數組的每一項可以用來保存任何類型的數據,也就是說,可以用數組的第一個位置來保存字串,第二個位置保存數值,第三個位置保存物件....另外,陣列的大小是可以動態調整的。

建立陣列的基本方式有兩種

第一種是使用Array建構函數,如下所示

var colors = new Array("red","blue","yellow");

第二種是使用陣列字面表示法,如下所示

var colors = ["red","blue","yellow"];

3 Function類型

每個函數都是Function類型的實例,而且都與其他引用型別一樣具有屬性和方法。函數通常是

使用函數

聲明語法定義的,如下所示

function sum(num1,num2){
  return num1 + num2;
};
這和使用函數表達式

定義函數的方式相差無幾。

var sun = function (){
  return sum1 + sum2;
};

也就是说,js按照存储方式分为值类型和引用类型。那么他们的计算有什么区别呢?

题目1:

var a = 100;
    var b = a;
      a = 200;
    console.log (b);

题目2:

var a = {age : 20};
    var b = a;
    b.age = 21;
    console.log (a.age);

题目1的答案是 100,题目2的答案是21,

题目1是简单的值类型,在从一个变量向另一个变量赋值基本类型时,会在该变量上创建一个新值,然后再把该值复制到为新变量分配的位置上。

此时,a中保存的值为 100 ,当使用 a 来初始化 b 时,b 中保存的值也为100,但b中的100与a中的是完全独立的,该值只是a中的值的一个副本,此后,这两个变量可以参加任何操作而相互不受影响。也就是说基本类型在赋值操作后,两个变量是相互不受影响的。

题目2是引用类型,当从一个变量向另一个变量赋值引用类型的值时,同样也会将存储在变量中的对象的值复制一份放到为新变量分配的空间中。

这时保存在变量中的是对象在堆内存中的地址,所以,与简单赋值不同,这个值的副本实际上是一个指针,而这个指针指向存储在堆内存的一个对象。那么赋值操作后,

两个变量都保存了同一个对象地址,则这两个变量指向了同一个对象。因此,改变其中任何一个变量,都会相互影响。

因此,引用类型的赋值其实是对象保存在栈区地址指针的赋值,因此两个变量指向同一个对象,任何的操作都会相互影响。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

怎样使用li进行水平排列

怎样操作页面、可视区、屏幕等宽高属性

以上是js基礎提升學習之基本資料類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn