js-20170606-資料類型

來源:互聯網
上載者:User

標籤:win   false   define   複合   ber   http   字元數組   style   技術分享   

JavaScript 語言的每一個值,都屬於某一種資料類型。JavaScript 的資料類型,共有六種。ES6 又新增了第七種 Symbol 類型的值JavaScript有三種方法,可以確定一個值到底是什麼類型。 1.布爾值 (下面六個值被轉為false 其他都轉化成true) 需要特別注意的是,空數組([])和Null 物件({})對應的布爾值,都是true。 2.數值 由於浮點數不是精確的值,所以涉及小數的比較和運算要特別小心。parseInt() 、 Number()、parseFloat() 3.字串字串可以被視為字元數組,因此可以使用數組的方括弧運算子,用來返回某個位置的字元(位置編號從0開始) var s = ‘hello‘; s[0] // "h" s[1] // "e" s[4] // "o" // 直接對字串使用方括弧運算子 ‘hello‘[1] // "e" 4.對象檢查變數是否聲明if (‘a‘ in window) {// 變數 a 聲明過} else {// 變數 a 未聲明}查看所有屬性使用Object.keys方法var o = {key1: 1,key2: 2};Object.keys(o);// [‘key1‘, ‘key2‘]in運算子in運算子用於檢查對象是否包含某個屬性(注意,檢查的是鍵名,不是索引值),如果包含就返回true,否則返回false;在JavaScript語言中,所有全域變數都是頂層對象(瀏覽器的頂層對象就是window對象)的屬性,因此可以用in運算子判斷,一個全域變數是否存在。for…in迴圈for...in迴圈有兩個使用注意點。 如果只想遍曆對象本身的屬性,可以使用hasOwnProperty方法,在迴圈內部判斷一下是不是自身的屬性。5.數組本質上,數組屬於一種特殊的對象。typeof運算子會返回數組的類型是object。數組的length屬性是可寫的。如果人為設定一個小於當前成員個數的值,該數組的成員會自動減少到length設定的值。var arr = [ ‘a‘, ‘b‘, ‘c‘ ];arr.length // 3arr.length = 2;arr // ["a", "b"]將數組清空的一個有效方法,就是將length屬性設為0。var arr = [ ‘a‘, ‘b‘, ‘c‘ ];arr.length = 0;arr // []in 運算子檢查某個鍵名是否存在的運算子in,適用於對象,也適用於數組。var arr = [ ‘a‘, ‘b‘, ‘c‘ ]; 2 in arr // true ‘2‘ in arr // true 4 in arr // false使用delete命令刪除一個數群組成員,會形成空位,並且不會影響length屬性。var a = [1, 2, 3];delete a[1]; a[1] // undefineda.length // 3 6.函數JavaScript有三種方法,可以聲明一個函數。(1)function命令
function print(s) {
console.log(s);
}
(2)函數運算式
var print = function(s) {
console.log(s);
};
這種寫法將一個匿名函數賦值給變數。這時,這個匿名函數又稱函數運算式(Function Expression),因為指派陳述式的等號右側只能放運算式。 採用函數運算式聲明函數時,function命令後面不帶有函數名。如果加上函數名,該函數名只在函數體內部有效,在函數體外部無效。(3)Function建構函式(幾乎不使用)
var add = new Function(
‘x‘,
‘y‘,
‘return x + y‘
);
 
// 等同於
 
function add(x, y) {
return x + y;
}
Function建構函式,除了最後一個參數是函數的“函數體”,其他參數都是函數的參數。
這種聲明函數的方式非常不直觀,幾乎無人使用。
函數可以調用自身,這就是遞迴 如果同時採用function命令和指派陳述式聲明同一個函數,最後總是採用指派陳述式的定義。不能在條件陳述式中聲明函數length屬性length屬性返回函數預期傳入的參數個數,即函數定義之中的參數個數。toString()函數的toString方法返回函數的源碼。函數範圍在函數外部聲明的變數就是全域變數(global variable),它可以在函數內部讀取。
var v = 1;
function f(){
console.log(v);
}
f() // 1
在函數內部定義的變數,外部無法讀取,稱為“局部變數”
function f(){
var v = 1;
}
v // ReferenceError: v is not defined
對於var命令來說,局部變數只能在函數內部聲明,在其他區塊中聲明,一律都是全域變數。if (true) {var x = 5;}console.log(x); // 5函數本身的範圍函數本身也是一個值,也有自己的範圍。它的範圍與變數一樣,就是其聲明時所在的範圍,與其運行時所在的範圍無關。參數參數傳遞方式:函數參數如果是原始類型的值(數值、字串、布爾值),傳遞方式是傳值傳遞(passes by value)。這意味著,在函數體內修改參數值,不會影響到函數外部。          如果函數參數是複合類型的值(數組、對象、其他函數),傳遞方式是傳址傳遞(pass by reference)。也就是說,傳入函數的原始值的地址,因此在函數內部修改參數,將會影響到原始值。注意,如果函數內部修改的,不是參數對象的某個屬性,而是替換掉整個參數,這時不會影響到原始值。          arguments對象arguments對象包含了函數運行時的所有參數

js-20170606-資料類型

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.