var定義的變數,沒有塊的概念,可以跨塊訪問, 不能跨函式訪問。變數提公升let定義的變數,只能在塊作用域裡訪問,不能跨塊訪問,也不能跨函式訪問。
const用來定義常量,使用時必須初始化(即必須賦值),只能在塊作用域裡訪問,而且不能修改。
var — 有變數提公升,變數可以在宣告前使用值為undefined
console.
log(foo)
;//undefined
var foo=
2;
let —宣告的變數不存在變數提公升, 一定要在宣告後使用不然報錯
console.
log(bar)
;//報錯
let bar=
2;
const —不存在變數提公升,一但宣告,必須馬上來賦值 宣告賦值不能改變
let p;
var p1;
// 不報錯
const p3 =
'馬上賦值'
const p3;
// 報錯 沒有賦;
_______________________________
const num =
'不能改變'
num =
'報錯'
暫時性死區:
只要一進入當前作用域,所要使用的變數就已經存在了,但是不可獲取,只有等到宣告變數的那一行**出現,才可以獲取和使用該變數
var tmp =
123;
// 宣告if(
true
)
不能重複宣告:
let 和const 在相同的作用域內,只能宣告一次
var 可以重複宣告 但是列印出來,是你最後一次宣告的
let a=1;
let a=2;
//報錯
const a =1,
const a =
2console.
log(a)
//報錯
var a=1;
var a=2;
console.
log(a)
//2
let 和const的使用場景:let 使用場景:變數,用以替代varconst 使用場景:常量,宣告的匿名函式,箭頭函式
前端面試題 var let const
let和var let和var 1.var定義變數,沒有塊的概念,可以跨塊訪問,不能跨函式訪問,不初始化出現undefined,不會報錯。2.let定義變數,只能在塊作用域裡訪問,也不能跨函式訪問,對函式外部無影響。3.const定義常量,只能在塊作用域裡訪問,也不能跨函式訪問,使用時必須初始化 即...
前端面試 前端面試總結2018 07
2周面試了11家公司吧,具體面試題如下 面試第一周 7.23 7.27 中谷芯厚建 蘇寧vivo外包 電面 杭州通策會 第二週 7.30 8.3 南京軟體谷研究院 烽火科技 邁特望,蘇寧外包 電面 平安科技外包 華泰 外包 一輪 技術面,二輪現場技術面 三隻松鼠 電面 一.中谷芯 二.厚建 angu...
前端面試 前端面試題300道
jsonp是如何產生的 1 乙個眾所周知的問題,ajax直接請求普通檔案存在跨域無許可權問題,甭管你是靜態頁面 動態頁面 web伺服器,wcf,只要是跨域請求,一律不准。2 不過我們又發現,web頁面上呼叫js檔案時則不受是否跨域的影響 不僅如此,我們還發現凡是擁有 src 這個屬性的標籤都擁有跨域...