小心作用域規則
小心解構
塊級作用域的時間死區
const變數宣告原則
var a = 10;function
f()
function
f()
}var g =f();
g();
//returns 11;
//***********************************===
//作用域規則
//全域性作用域
//區域性作用域
//這些作用域規則可能會引發一些錯誤。 其中之一就是,多次宣告同乙個變數並不會報錯:
for(var i=0; i<10;i++),i*100);
}(i)
}for (let i = 0; i < 10 ; i++) , 100 *i);}//
擁有塊級作用域的變數的另乙個特點是,它們不能在被宣告之前讀或寫。
//雖然這些變數始終「存在」於它們的作用域裡,但在直到宣告它的**之前的區域都屬於時間死區。
//塊級作用域變數的獲取
function
thecitythatalwayssleeps()
}return
getcity();}//
const 與let相同的作用域規則,但是不能對它們重新賦值。
//基本原則就是如果乙個變數不需要對它寫入,那麼其它使用這些**的人也不能夠寫入它們,並且要思考為什麼會需要對這些變數重新賦值。
//使用const也可以讓我們更容易的推測資料的流動。
//解構
let input = [1, 2];
let [first, second] =input;
console.log(first);
//outputs 1
console.log(second); //
outputs 2
//你可以使用...name語法建立乙個剩餘變數列表:
let [first, ...rest] = [1, 2, 3, 4];
console.log(first);
//outputs 1
console.log(rest); //
outputs [ 2, 3, 4 ]
let o =
let =o;
console.log(o['a']);
console.log(o['b']);
//資料型別指明
let : =o;
function f( = ): void
f() //
ok, default b = 0
f() //
ok, default to , which then defaults b = 0
f({}) //
error, 'a' is required if you supply an argument
//要小心使用解構。 從前面的例子可以看出,就算是最簡單的解構也會有很多問題
ts 宣告變數型別
ts中,宣告變數時可以同時指定其型別,格式 var name string forrest 這樣,當 name 1 會報錯,因為name已經指定了string型別如果想指定變數為可變型別,可以 var name any forrest 注意,即使name被指定為string型別,在ts中不能複製數字...
TS 的型別宣告和變數型別
一 型別宣告 型別宣告是 ts 非常重要的乙個特點,通過型別宣告可以指定 ts 中變數 引數 形參 的型別 當為變數賦值時,ts編譯器會自動檢查值是否符合型別宣告,符合則賦值,否則報錯 簡而言之,型別宣告給變數設定了型別,使得變數只能出儲存某種型別的值,這是 js 不具備的 語法 let a num...
宣告變數 如果同時宣告多個變數
如果同時宣告多個變數,可以用以下語句 也可以按如下宣告 dim a as integer,b as integer,c as integer但是不可以按如下宣告 dim a,b,c as integer 如果這樣操作,僅有c宣告正確。如何檢查是否宣告成功呢?可以使用typename函式來判斷。msg...