變數函式申明隨筆

2021-09-18 02:11:59 字數 1827 閱讀 6260

塊級作用域 、變數提公升、暫時性死區、不可重複申明

let t

var t

//error

var t=1;

console.log(window.t);

// 1

let t=1;

console.log(window.t)

//undefined let命令、const命令、class命令宣告的全域性變數,不屬於頂層物件的屬性

let t;

//error

var t=1;

// 1

console.log(t)

let t

//error

console.log(t)

//error

typeof t

//undefined

console.log(t)

var t=1

//undefined

var t=1;

function()

//undefined

var t=1;

(function())()

//error

let t=1;

(function())()

//undefined

var t=

for(var i=0;i<10;i++)

}t[0]();t[9]();

console.log(i)

// 10 10

//10

var t=

for(let i=0;i<10;i++)

}t[0]();t[9]();

// 0 9

for(let i=0;i<2;i++)

// 5 5 執行2次 而不是1次

函式申明相關

允許在塊級作用域內宣告函式。

函式宣告類似於var,即會提公升到全域性作用域或函式作用域的頭部。

同時,函式宣告還會提公升到所在的塊級作用域的頭部。

t()

}//error

}//1

function t()

function tt()

t()}t();tt()

//2 2 3

t();

function t()

//1t()

if(1)

}// error

if(1)

}t()

//1if(0)

}t()

//error

function t()

(function ()

} t();

}());

//error

'use strict';

if (1) function t() {}

//error

常量

const a ;

//error

const a=1;

a=2;

//error

const t=

t.y=2

console.log(t)

// t=

//error

const實際上保證的,並不是變數的值不得改動,而是變數指向的那個記憶體位址所儲存的資料不得改動。對於簡單型別的資料(數值、字串、布林值),值就儲存在變數指向的那個記憶體位址,因此等同於常量。但對於復合型別的資料(主要是物件和陣列),變數指向的記憶體位址,儲存的只是乙個指向實際資料的指標,const只能保證這個指標是固定的(即總是指向另乙個固定的位址),至於它指向的資料結構是不是可變的,就完全不能控制了。

Go 語言變數申明

變數宣告 第一種,指定變數型別,如果沒有初始化,則變數預設為零值。var v name v type v name value 零值就是變數沒有做初始化時系統預設設定的值。例項package main import fmt func main 多變數宣告 型別相同多個變數,非全域性變數 var vn...

mysql申明變數以及賦值

sql server中變數要先申明後賦值 區域性變數用乙個 標識,全域性變數用兩個 常用的全域性變數一般都是已經定義好的 申明區域性變數語法 declare 變數名 資料型別 例如 declare num int 賦值 有兩種方法式 num為變數名,value為值 set num value 或 s...

MySql 申明變數以及賦值

sql server中變數要先申明後賦值 區域性變數用乙個 標識,全域性變數用兩個 常用的全域性變數一般都是已經定義好的 申明區域性變數語法 declare 變數名 資料型別 例如 declare num int 賦值 有兩種方法式 num為變數名,value為值 set num value 或 s...