日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

javascript耐人寻味

發布時間:2025/3/15 javascript 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript耐人寻味 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在思考javascript解釋過程的時候,看過別人幾篇文章,自己做了幾個測試

? ?

容易理解,在javascript,形如這樣的代碼可以正常執行:

?

alert(hello()); function hello(){alert('hello'); }

?

可以得到“hello”字符串。

形如這樣的代碼,有問題。

alert(hello());var hello = function(){alert('hello');}

?

結果為undefined。兩種代碼執行結果不同的原因是,在javascript執行之前有個預解釋階段,形如function name()方式定義的函數會優
先賦值,就是說第一遍name變量就已經指向相應函數了,所以第一段代碼在解釋階段可以訪問到后面的hello函數,第二段代碼中,則還要講到,預解釋階段創建一個活動對象,然后在這個對象里把變量丟進
去,而這種定義函數的方式會然解釋器認為hello是一個變量,所以,給他們賦值為undefined,第二段代碼實際是以變量的形式保存了hello的值為undefined,故執行階段時它還是允許了undefined,它在后面才得到函數定義。 當然,html的執行順序是從上到下執行,那么嵌套在,<script></script>也應該是從上到下一塊一塊執行,即使是外鏈接的javascript代
碼也不例外。 接下來是這一段代碼 function hello(){alert('hello');}hello();var hello = function () {alert('hello2')}hello();

你可以想象上面的解釋,然后想象結果。

結果和預想的一樣,“hello”,“hello2”。怎么樣,是不是有點糊涂了,之前我們把hello放前面,所以執行到前面的hello時是undefined,首先,看上面代碼,預解釋階段,本應該報錯的第一個hello正常執行,說明
了給hello定義undefined在預解釋階段應該是在函數定義之前 然后是這一段,結果是什么呢,需要思考下了 function hello(){alert('hello');}hello();function hello() {alert('hello2')}hello();

?

兩次都是hello2而不是hello和hello2,結合前面的,可以理解,在預編譯階段已經把hello重新賦值,并且第二次遇見function hello()會忽略,或者說是直接提前了,總而言之,以上代碼實際上執行順序是

function hello(){alert('hello');}hello = function() {alert('hello2')} hello();hello();

?

就是這樣,然后我們在看兩段代碼,第一段比較簡單是這樣: <script type="text/javascript">function hello(){alert('hello');}hello();</script><script type="text/javascript">function hello() {alert('hello2')}hello();</script>

?

得到預想結果,hello 和hello2,不同就是拆成了兩塊,而代碼是一塊一塊執行的。前面已經提到。 然后下面這一段需要深入仔細的看看,和思考哈哈。 <script type="text/javascript">var hello = function () {alert('hello');}hello();function hello() {alert('hello2')}hello();</script>

?

先不說結果,猜猜是什么結果,是不是有人會以為第二次從新賦值,結果不是和那一段代碼一樣嗎,錯了,兩次都是hello,是前面的那個函數的值,原因其實很簡單function hello()提前了,所以實際上是第一個函數覆蓋了第二個函數。

修改了一點東西,同時附上之前看到鏈接,其實,現在看看,這東西還是有點怪怪,不過它還是挺重要,怎么說,至少要知道其實js解釋分兩次,有這感覺這對寫代碼時候是很有幫助:

參考:http://www.jb51.net/article/44123.htm

轉載于:https://www.cnblogs.com/wuweixin/p/4825934.html

總結

以上是生活随笔為你收集整理的javascript耐人寻味的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产色在线观看 | 久久一道本 | 国产熟妇乱xxxxx大屁股网 | 欧美精品hd| 极品人妻一区二区三区 | 波多野结衣中文一区 | 亚洲色图图片区 | 欧美美女视频 | 欧美一区二区免费在线观看 | jlzzjlzz亚洲日本少妇 | 日日碰狠狠添天天爽无码 | www黄色com | 国产粉嫩白浆 | 日韩欧美在线观看一区二区三区 | 亚洲一区在线免费 | 亚洲精品免费在线视频 | av黄在线观看 | 日韩性爰视频 | 国产精品高清网站 | 欧美另类综合 | 自拍偷拍麻豆 | 天堂中文在线观看 | 黑人狂躁日本妞hd | 欧美三级午夜理伦三级老人 | 欧美成人精品一区二区 | 色在线免费观看 | 国产一线在线观看 | 国产精品videossex国产高清 | 欧美精品1区2区 | 黄色一级网站 | 欧美性精品| 亚洲av综合色区无码一二三区 | 欧洲熟妇精品视频 | 国产青草视频在线观看 | 涩涩视频免费观看 | 福利在线免费视频 | av中文字幕第一页 | 午夜免费看 | 在线综合视频 | 91麻豆精品秘密入口 | 深夜福利在线免费观看 | 亚洲精品69| 国产精品露脸视频 | 亚洲精品综合久久 | 久久国产劲爆∧v内射 | 极品美女开粉嫩精品 | 中文字幕一区二区在线观看视频 | 精精国产xxxx视频在线播放 | 日韩欧美一级 | 丁香花在线影院观看在线播放 | 能直接看的av | 一区二区三区国产av | 国产少女免费观看高清 | 一级看片免费视频 | 小俊大肉大捧一进一出好爽 | 亚洲香蕉视频 | 久久99久久99精品免视看婷婷 | 日本高清在线观看 | 婷婷激情综合网 | 国产精品wwww | 中文人妻熟女乱又乱精品 | 日韩精品一区二区三区四区五区 | 国产精品呻吟久久 | 撕开少妇裙子猛然进入 | 91免费版在线| 韩国伦理大片 | 第九色激情 | 99久久免费看精品国产一区 | www.xxx日韩| 大奶一区 | 苍井空亚洲精品aa片在线播放 | 国产欧美精品久久久 | 成人午夜视频在线播放 | 欧美69精品久久久久久不卡 | 少妇一晚三次一区二区三区 | 亚洲AV无码久久精品色三人行 | 国产毛片在线视频 | 国产精品美女www | 老熟妇精品一区二区三区 | 三级在线看中文字幕完整版 | 欧美精品一级片 | 成年人免费网址 | 成人精品免费在线观看 | 丰满人妻av一区二区三区 | 欧美a在线播放 | 每日在线更新av | 五月精品 | 91视频影院 | 最污网站在线观看 | 中文字幕欧美在线观看 | 国产超碰人人 | 男人你懂的网站 | 神秘电影永久入口 | 草久视频在线观看 | 香蕉视频国产在线观看 | 国产美女免费看 | 夜夜爽爽 | 黄色片久久 | 日本人极品人妖高潮 |