JavaScript變量及數據類型

1 變量

1.1 什麼是變量

什麼是變量:變量是計算機內存中存儲數據的標識符,根據變量名稱可以獲取到內存中存儲的數據。

爲什麼要使用變量:使用變量可以方便的獲取或者修改內存中的數據。

1.2 如何使用變量

var聲明變量

var age;

變量的賦值

var age;
age = 18;

同時聲明多個變量

var age, name, sex;
age = 10;
name = 'zs';

同時聲明多個變量並賦值

var age = 10, name = 'zs';

1.3 變量在內存中的存儲

var age = 18;

 

1.4 變量的命名規則和規範

規則:必須遵守的,不遵守會報錯

由字母、數字、下劃線、$符號組成,不能以數字開頭

不能是關鍵字和保留字,例如:for、while。

區分大小寫

規範:建議遵守的,不遵守不會報錯

變量名必須有意義

遵守駝峯命名法。首字母小寫,後面單詞的首字母需要大寫。例如:userName、userPassword

1.5 案例

1. 交換兩個變量的值

2. 不使用臨時變量,交換兩個數值變量的值

2 數據類型

2.1 簡單數據類型

Number、String、Boolean、Undefined、Null

2.1.1 Number類型

數值字面量:數值的固定值的表示法

110 1024  60.5

進制

十進制

var num = 9;

進行算數計算時,八進制和十六進制表示的數值最終都將被轉換成十進制數值。

十六進制

var num = 0xA;

數字序列範圍:0~9以及A~F

八進制

    var num1 = 07;   // 對應十進制的7

    var num2 = 019;  // 對應十進制的19

    var num3 = 08;   // 對應十進制的8

    數字序列範圍:0~7

    如果字面值中的數值超出了範圍,那麼前導零將被忽略,後面的數值將被當作十進制數值解析

浮點數

浮點數的精度問題

浮點數

var n = 5e-324;   // 科學計數法  5乘以10的-324次方  

浮點數值的最高精度是 17 位小數,但在進行算術計算時其精確度遠遠不如整數

   var result = 0.1 + 0.2;    // 結果不是 0.3,而是:0.30000000000000004

   console.log(0.07 * 100);

   不要判斷兩個浮點數是否相等

- 數值範圍

最小值:Number.MIN_VALUE,這個值爲: 5e-324

最大值:Number.MAX_VALUE,這個值爲: 1.7976931348623157e+308

無窮大:Infinity

無窮小:-Infinity

數值判斷

NaN:not a number

NaN 與任何值都不相等,包括他本身

isNaN: is not a number

2.1.2 String類型

'abc'   "abc"

字符串字面量

'程序猿','程序媛'​

  思考:如何打印以下字符串。

  我是一個"正直"的人

  我很喜歡"厲害'程序猿'"

轉義符

字符串長度

length屬性用來獲取字符串的長度

var str = '黑馬程序猿 Hello World';
console.log(str.length);

字符串拼接

字符串拼接使用 + 連接

console.log(11 + 11);
console.log('hello' + ' world');
console.log('100' + '100');
console.log('11' + 11);
console.log('male:' + true);

1. 兩邊只要有一個是字符串,那麼+就是字符串拼接功能

2. 兩邊如果都是數字,那麼就是算術功能。

2.1.3 Boolean類型

Boolean字面量:  true和false,區分大小寫

計算機內部存儲:true爲1,false爲0

2.1.4 Undefined和Null

1. undefined表示一個聲明瞭沒有賦值的變量,變量只聲明的時候值默認是undefined

2. null表示一個空,變量的值如果想爲null,必須手動設置

2.2 複雜數據類型

2.1 複雜類型(引用類型)

Object,Array,Date,RegExp,Function

基本包裝類型:Boolean,Number,String

單體內置對象:Global,Math

2.2 類型檢測

方式1: `typeof`

方式2: `instanceof`

方式3: `Object.prototype.toString.call()`

2.3 值類型和引用類型在內存中的存儲方式

值類型按值存儲;引用類型按引用存儲。

2.4 值類型複製和引用類型複製

值類型按值複製;引用類型按引用複製。

2.5 值類型和引用類型參數傳遞

值類型按值傳遞;引用類型按引用傳遞。

2.6 值類型與引用類型的差別

1基本類型在內存中佔據固定大小的空間,因此被保存在棧內存中

2從一個變量向另一個變量複製基本類型的值,複製的是值的副本

3引用類型的值是對象,保存在堆內存

4包含引用類型值的變量實際上包含的並不是對象本身,而是一個指向該對象的指針

5從一個變量向另一個變量複製引用類型的值的時候,複製是引用指針,因此兩個變量最終都指向同一個對象

2.3 獲取變量的類型

typeof
var age = 18;
console.log(typeof age);  // 'number'

2.4 字面量

在源代碼中一個固定值的表示法。

數值字面量:8, 9, 10

字符串字面量:'黑馬程序員', "大前端"

布爾字面量:true,false

3 註釋

3.1 單行註釋

用來描述下面一個或多行代碼的作用

// 這是一個變量

var name = 'hm';

3.2 多行註釋

用來註釋多條代碼
 

var age = 18;
var name = 'zs';
console.log(name, age);

3.3 數據類型轉換

如何使用谷歌瀏覽器,快速的查看數據類型?

字符串的顏色是黑色的,數值類型是藍色的,布爾類型也是藍色的,undefined和null是灰色的

3.4 轉換成字符串類型

toString()
var num = 5;
console.log(num.toString());

String()

String()函數存在的意義:有些值沒有toString(),這個時候可以使用String()。比如:undefined和null

拼接字符串方式

num  +  "",當 + 兩邊一個操作符是字符串類型,一個操作符是其它類型的時候,會先把其它類型轉換成字符串再進行字符串拼接,返回字符串

3.5 轉換成數值類型

Number()

Number()可以把任意值轉換成數值,如果要轉換的字符串中有一個不是數值的字符,返回NaN

parseInt()
var num1 = parseInt("12.3abc");  // 返回12,如果第一個字符是數字會解析直到遇到非數字結束
var num2 = parseInt("abc123");   // 返回NaN,如果第一個字符不是數字或者符號就返回NaN

parseFloat()

parseFloat()把字符串轉換成浮點數

parseFloat()和parseInt非常相似,不同之處在與

parseFloat會解析第一個. 遇到第二個.或者非數字結束

如果解析的內容裏只有整數,解析成整數

- +,-0等運算
var str = '500';
console.log(+str); // 取正
console.log(-str); // 取負
console.log(str - 0);

3.6 轉換成布爾類型

Boolean()

0  ''(空字符串) null undefined NaN 會轉換成false  其它都會轉換成true

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