javaScript——廖雪峰老師學習筆記(一)

來源:互聯網
上載者:User

標籤:浮點數   同名   報錯   定義   字串類型   返回   首碼和   整數   string   

1、要查看一個變數的內容,在Console中輸入console.log(a);,斷行符號後顯示的值就是變數的內容。

2、alert(‘我不想執行‘); //提示框Google瀏覽器可直接執行

3、JavaScript不區分整數和浮點數,統一用Number表示,以下都是合法的Number類型:

123; // 整數1230.456; // 浮點數0.4561.2345e3; // 科學計數法表示1.2345x1000,等同於1234.5-99; // 負數NaN; // NaN表示Not a Number,當無法計算結果時用NaN表示Infinity; // Infinity表示無限大,當數值超過了JavaScript的Number所能表示的最大值時,就表示為Infinity

電腦由於使用二進位,所以,有時候用十六進位表示整數比較方便,十六進位用0x首碼和0-9,a-f表示,例如:0xff000xa5b4c3d2,等等,它們和十進位表示的數值完全一樣。

注意%是求餘運算。

4、字串

字串是以單引號‘或雙引號"括起來的任意文本,比如‘abc‘"xyz"等等。請注意,‘‘""本身只是一種表示方式,不是字串的一部分,因此,字串‘abc‘只有abc這3個字元。

5、比較

實際上,JavaScript允許對任意資料類型做比較:

false == 0; // truefalse === 0; // false

要特別注意相等運算子==。JavaScript在設計時,有兩種比較子:

第一種是==比較,它會自動轉換資料類型再比較,很多時候,會得到非常詭異的結果;

第二種是===比較,它不會自動轉換資料類型,如果資料類型不一致,返回false,如果一致,再比較。

由於JavaScript這個設計缺陷,不要使用==比較,始終堅持使用===比較。

另一個例外是NaN這個特殊的Number與所有其他值都不相等,包括它自己:

NaN === NaN; // false

唯一能判斷NaN的方法是通過isNaN()函數:

isNaN(NaN); // true

最後要注意浮點數的相等比較:

1 / 3 === (1 - 2 / 3); // false

這不是JavaScript的設計缺陷。浮點數在運算過程中會產生誤差,因為電腦無法精確表示無限迴圈小數。要比較兩個浮點數是否相等,只能計算它們之差的絕對值,看是否小於某個閾值:Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // tru

6、數組

數組是一組按順序排列的集合,集合的每個值稱為元素。JavaScript的數組可以包括任意資料類型。

var arr = [1, 2, 3.14, ‘Hello‘, null, true];arr[0]; // 返回索引為0的元素,即1arr[5]; // 返回索引為5的元素,即truearr[6]; // 索引超出了範圍,返回undefined

7、對象

JavaScript的對象是一組由鍵-值組成的無序集合,例如

var person = {    name: ‘Bob‘,    age: 20,    tags: [‘js‘, ‘web‘, ‘mobile‘],    city: ‘Beijing‘,    hasCar: true,    zipcode: null};

JavaScript對象的鍵都是字串類型,值可以是任意資料類型。上述person對象一共定義了6個索引值對,其中每個鍵又稱為對象的屬性,例如,personname屬性為‘Bob‘zipcode屬性為null

要擷取一個對象的屬性,我們用物件變數.屬性名稱的方式:

person.name; // ‘Bob‘person.zipcode; // null

8、變數

變數的概念基本上和初中代數的方程變數是一致的,只是在電腦程式中,變數不僅可以是數字,還可以是任意資料類型。

變數在JavaScript中就是用一個變數名表示,變數名是大小寫英文、數字、$_的組合,且不能用數字開頭。變數名也不能是JavaScript的關鍵字,如ifwhile等。申明一個變數用var語句,比如:

var a; // 申明了變數a,此時a的值為undefinedvar $b = 1; // 申明了變數$b,同時給$b賦值,此時$b的值為1var s_007 = ‘007‘; // s_007是一個字串var Answer = true; // Answer是一個布爾值truevar t = null; // t的值是null

變數名也可以用中文,但是,請不要給自己找麻煩。

在JavaScript中,使用等號=對變數進行賦值。可以把任意資料類型賦值給變數,同一個變數可以反覆賦值,而且可以是不同類型的變數,但是要注意只能用var申明一次,例如:

var a = 123; // a的值是整數123a = ‘ABC‘; // a變為字串

這種變數本身類型不固定的語言稱之為動態語言,與之對應的是靜態語言。靜態語言在定義變數時必須指定變數類型,如果賦值的時候類型不符,就會報錯。例如Java是靜態語言,指派陳述式如下:

int a = 123; // a是整數類型變數,類型用int申明a = "ABC"; // 錯誤:不能把字串賦給整型變數

和靜態語言相比,動態語言更靈活,就是這個原因。

請不要把指派陳述式的等號等同於數學的等號。比如下面的代碼:

var x = 10;x = x + 2;

如果從數學上理解x = x + 2那無論如何是不成立的,在程式中,指派陳述式先計算右側的運算式x + 2,得到結果12,再賦給變數x。由於x之前的值是10,重新賦值後,x的值變成12

9、strict模式

JavaScript在設計之初,為了方便初學者學習,並不強制要求用var申明變數。這個設計錯誤帶來了嚴重的後果:如果一個變數沒有通過var申明就被使用,那麼該變數就自動被申明為全域變數:

使用var申明的變數則不是全域變數,它的範圍被限制在該變數被申明的函數體內(函數的概念將稍後講解),同名變數在不同的函數體內互不衝突。

為了修補JavaScript這一嚴重設計缺陷,ECMA在後續規範中推出了strict模式,在strict模式下啟動並執行JavaScript代碼,強制通過var申明變數,未使用var申明變數就使用的,將導致運行錯誤。

啟用strict模式的方法是在JavaScript代碼的第一行寫上:

‘use strict‘;

10、討論區補充://此處要在實戰中弄明白let,因為我沒用過

const 常量 let 變數,塊範圍,不能重複聲明覆蓋 var 變數,函數範圍,能重複聲明覆蓋

賦值之後不會再做修改了就用const,如果後邊還會修改就用let,不建議使用var

 

 

javaScript——廖雪峰老師學習筆記(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.