前端學習-JavaScript數據類型和基礎語法

JavaScript數據類型和基礎語法

基礎語法

JavaScript是區分大小寫的,並使用Unicode字符集. 舉個?:

var Fish = "Hello World";

但是因爲是JavaScript是區分大小寫的,所以fishFish是兩個不同的變量.在JavaScript中,使用;進行分隔語句.獨佔一行的時候可以不用,但是不建議這樣做.

註釋

// 單行註釋
/*
	多行
	註釋
*/

聲明

JavaScript有三種聲明方式:

  1. var聲明一個變量
  2. let聲明一個塊作用域的局部變量
  3. const聲明一個塊作用域的只讀常量

變量

變量的又可以稱作標識符,有其一定的規則.JavaScript的標識符必須以字母,下劃線或者美元符號開頭,後面可以接數字.因爲JavaScript是區分大小寫的,所以字母可以從A-Z,a-z.也可以使用部分的Unicode編碼和ISO8859-1.

比如:Name,sex123,$credit,_name

聲明變量

  1. 使用關鍵字var,var x = 1
  2. 直接賦值,x = 1
  3. 使用關鍵字let,let x = 1

變量求值

使用varlet聲明的變量,如果沒有賦值,則值爲underfined.如果引用一個沒有聲明值得變量,會報引用錯誤異常(ReferenceError)

var a;
console.log(a); //a的值就是underfined

underfined可以用來判斷一個變量是否賦值.在布爾類型中則會被當做false.

var a;
if(a === underfined) {
  // a沒有賦值,所以這裏會通過
}
var a = [];
if (!a[0]) {
  // 這裏會通過
}

在使用運算符的時候,underfined會被轉換爲NaN

var a;
a + 1; // 結果爲NaN

如果給變量賦值爲null,null在運算時會被當做0來計算.

var a = null;
a + 1; // 這裏結果爲1

變量的作用域

在函數外部聲明的變量,叫做全局變量,可以在當前任何位置進行訪問.在函數內部聲明的變量,叫做局部變量.只能在當前函數內部訪問.

ECMAScript6之前的代碼中,沒有語句塊內部的變量也是全局範圍的.

if() {
	var a = 1;   
}
console.log(x); // 5

使用let聲明:

if(){
   let a = 1;
}
console.log(a) // ReferenceError

變量提升

JavaScript可以先使用變量再聲明變量,然而不會引發異常.這個概念爲變量提升.但是這個變量提升後返回的是underfined,哪怕已經給變量賦值.

console.log(a === underfined) // true
var a = 1;

在ECMAScript6中,let/const不會提升,並會報引用錯誤:

console.log(a); //ReferenceError
let a = 1;

函數提升

只有函數聲明會被提升,函數表達式不會提升:

zoom(); // zoom

function zoom() {
  console.log('zoom');
}

name(); // 錯誤

var name = function() {
  console.log('name');
}

全局變量

在網頁中,全局對象是window,所以可以使用window.variable來設置和訪問全局變量.

常量

使用關鍵字const創建一個只讀的常量.

const ABC = 123;

常量不可以重新賦值,也不能重新聲明.常量的作用域規則和let的塊級作用域變量相同.

在同一個作用域中,不能使用和變量名或者函數名相同的名字來命名常量:

function a(){};
const a = 1;

// or
function a(){
  const b = 5;
  var b;
}

但是,給常量進行對象屬性賦值是不受保護的:

// 這裏不會錯誤
const ABC = {'a': '1'};
ABC.a = '2';

同樣的,數組形式的賦值也是如此:

const ABC = ['a','b'];
ABC.push('c');
console.log(ABC);

數據結構和類型

ECMAScript標準定義了8種數據類型:

  • 基本數據類型
    1. Boolean
    2. null
    3. underfined
    4. Number
    5. BigInt
    6. String
    7. Symbol
  • Object

數據類型的轉換

JavaScript是一種動態類型語言,這就表示在聲明變量是可以不指定數據類型,而是可以自動轉換的.

var a = 1;
a = "1";

上述代碼不會出錯.

使用+可以將字符串和數據連接爲一個字符串:

a = '12xx' + 1;
b = 1 + '123xxx';

但是,如果字符串是數組,不使用+的時候,JavaScript會把字符串轉換爲數字進行運算操作:

'1' - 1; // 0

字符串轉換爲數字

JavaScript內置了將字符串轉爲相對於的數字.parseInt(),parseFloat()轉爲整數和浮點數.

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