摘要:預(yù)解析作為一門解釋型腳本語言,特點是邊解析邊執(zhí)行。而預(yù)解析則是,提前解析的意思,也就是所說的變量提升。報錯以上相當于報錯因為跟都是用隱式全局變量,所以答案是,而是用聲明的局部變量,在函數(shù)以外訪問,會報錯。
js預(yù)解析
js作為一門解釋型腳本語言,特點是邊解析邊執(zhí)行。而預(yù)解析則是,提前解析的意思,也就是所說的變量提升。
console.log(a); var a = 10;//undefined
這里的結(jié)果是undefined而并不是a is not defined。是因為var a被提升到console.log之前,即
var a; console.log(a); var a = 10;//undefined
但是函數(shù)提升則不是undefined的結(jié)果,而是結(jié)果正常。
function foo(){ console.log("aaa"); }; foo();//aaa
VS
foo();//aaa function foo(){ console.log("aaa"); };案例里的坑 一個鬧心的例子
foo();//20 var number =20; function foo(){ console.log(number); }函數(shù)的例子
foo();//undefined var number =20; function foo(){ console.log(number); var number = 10; }
函數(shù)提升了,函數(shù)中的變量number也被提升了,結(jié)果就成了undefined
隱藏的隱式全局變量以下剛開始,我的答案是9 9 9 報錯 報錯 報錯,后來才發(fā)現(xiàn)里面有坑。
foo(); console.log(c);//9 console.log(b);//9 console.log(a);//報錯 a is not defined function foo(){ var a=b=c=9; console.log(a);//9 console.log(b);//9 console.log(c);//9 }
以上相當于
function foo(){ var a; c = 9; b = c; a = b; console.log(a);//9 console.log(b);//9 console.log(c);//9 } foo(); console.log(c);//9 console.log(b);//9 console.log(a);//報錯 a is not defined
因為b跟c都是用隱式全局變量,所以答案是9,而a是用var聲明的局部變量,在函數(shù)以外訪問,會報錯。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/94665.html
摘要:個人前端文章整理從最開始萌生寫文章的想法,到著手開始寫,再到現(xiàn)在已經(jīng)一年的時間了,由于工作比較忙,更新緩慢,后面還是會繼更新,現(xiàn)將已經(jīng)寫好的文章整理一個目錄,方便更多的小伙伴去學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個人前端文章整理 從最開始萌生寫文章的想法,到著手...
摘要:中文站點中文站當前翻譯版本為。注意將不能使用在子組件中。只能使用在頁面中。替換路由組件默認將新推入路由棧中。以防服務(wù)端渲染發(fā)生錯誤,建議事件寫在生命周期里。禁止文件路由默認情況,將會把下的所有文件匹配路由如渲染為如果你的項目使用 Next.js 是一個輕量級的 React 服務(wù)端渲染應(yīng)用框架。 Next.js中文站點 http://nextjs.frontendx.cn Next.j...
摘要:作用域是門動態(tài)語言,跟不一樣,可以隨意定義全局變量和局部變量,變量會在該作用域下提升,而且沒有塊級作用域。一預(yù)處理作用域解析的作用域只用兩種,一個是全局的,一個是函數(shù)的,也稱為全局作用域和局部作用域局部作用域可以訪問全局作用域。 作用域 JavaScript是門動態(tài)語言,跟Java不一樣,JavaScript可以隨意定義全局變量和局部變量,變量會在該作用域下提升,而且JavaScrip...
摘要:作用域的概念所謂作用域,作用就是指讀,寫等操作,而域便是指空間,范圍等中的域有是全局的域,相應(yīng)地里面的變量就是全局變量,函數(shù)就是全局函數(shù)如果有多個包住的域的話,函數(shù)會自上而下執(zhí)行,比如寫了兩的時候便會從上到下先執(zhí)行第一個再執(zhí)行第二個的代碼比 作用 域的概念 所謂作用域,作用就是指讀,寫等操作,而域便是指空間,范圍等 js中的域有 1.script script是全局的域,相應(yīng)地里面的變...
閱讀 2022·2023-04-25 23:30
閱讀 1452·2021-11-24 10:18
閱讀 3069·2021-10-09 09:54
閱讀 2017·2021-10-08 10:05
閱讀 3431·2021-09-23 11:21
閱讀 3161·2019-08-30 15:52
閱讀 1560·2019-08-30 13:05
閱讀 1056·2019-08-30 13:02