//塊級作用域變數的獲取
function thecitythatalwayssleeps() ;
}return getcity();
}//重定義及遮蔽,這個版本的迴圈能得到正確的結果,因為內層迴圈的i可以遮蔽掉外層迴圈的i
function summatrix(matrix: number)
}return sum;
}//const 宣告
const numlivesforcat = 9;
const kitty = ;
// error
kitty = ;
// all "okay"
kitty.name = "rory";
kitty.name = "kitty";
kitty.name = "cat";
kitty.numlives--;
//最簡單的解構
let input = [1, 2];
let [first, second] = input;
console.log(first); // outputs 1
console.log(second); // outputs 2
// 交換變數
[first, second] = [second, first];
//作用於函式引數
function f([first, second]: [number, number])
f(input);
//陣列裡使用...語法建立剩餘變數
let [first, ...rest] = [1, 2, 3, 4];
console.log(first); // outputs 1
console.log(rest); // outputs [ 2, 3, 4 ]
//忽略你不關心的尾隨元素
let [first] = [1, 2, 3, 4];
console.log(first); // outputs 1
let [, second, , fourth] = [1, 2, 3, 4];
//物件解構
let o = ;
let = o;
//就像陣列解構,你可以用沒有宣告的賦值
( = );
//你可以在物件裡使用...語法建立剩餘變數
let = o;
let total = passthrough.b + passthrough.c.length;
//你也可以給屬性以不同的名字
let = o;
//預設值可以讓你在屬性為 undefined 時使用預設值
function keepwholeobject(wholeobject: ) = wholeobject;
}
//解構也能用於函式宣告
type c = ;
function f(: c): void
//將乙個陣列展開為另乙個陣列
let first = [1, 2];
let second = [3, 4];
let bothplus = [0, ...first, ...second, 5];
//將乙個物件展開為另乙個物件
let defaults = ;
let search = ;
//注意:如果前後物件有相同的屬性,則後面的覆蓋前面的
《Effective C 》第四章 設計與宣告
條款20 寧以pass by reference to const替換pass by value 這個條款其實也可以用pass by pointer to const來替代。因為如果傳值,對於使用者自定義型別來說十分費時,而使用const型別的引用或者指標來傳遞,不僅省時,而且保護了原物件不會被修改...
第四章 繼承
一 為什麼要繼承 在物件導向中我們將具有很多重複內容的類中的內容提取出來,寫成乙個單獨的類 其他類只需要繼承就能取得這些功能,同時可以在自己類中寫入獨特的自定義方法 二 繼承語法 inte ce circle nsobject 繼承是在介面中定義的 冒號後的類名是要整合的類,nsobject 是co...
第四章 物件
三個特性 身份 型別 值 每個物件都有唯一的身份來標識自己,使用內建函式id 得到。例子 usr bin env python coding utf 8 a 32 print a b a print id a id b 結果 d python27 python.exe e workp python ...