成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

關(guān)于javascript基礎(chǔ)的認(rèn)識

microelec / 809人閱讀

摘要:下面所有的東西都不為堆高我的編程能力,所以我只是把對的認(rèn)識用最粗鄙的語言進(jìn)行講解和記錄,所以,閱讀需謹(jǐn)慎執(zhí)行在執(zhí)行之前會先進(jìn)行編譯。所以對純前端尤其值得一提,不僅要知道怎么進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換更要清楚的知道你當(dāng)下在操作的是什么數(shù)據(jù)類型。

下面所有的東西都不為堆高我的編程能力,所以我只是把對JS的認(rèn)識用最粗鄙的語言進(jìn)行講解和記錄,所以,閱讀需謹(jǐn)慎!

JS執(zhí)行

JS在執(zhí)行之前會先進(jìn)行編譯。這第一句話都可能被我?guī)牧?,畢竟市面上都是說JS是動態(tài)的解釋執(zhí)行語言,但那又如何?!知道JS在執(zhí)行之前是先進(jìn)行‘編譯’的就好。且看下面

console.log(a);//undefined
//把它復(fù)制到j(luò)s文件里,并對下面一行打上斷點(diǎn),看控制臺輸出的是什么?undefined!說明在執(zhí)行前進(jìn)行了‘編譯’
//提醒:最好是在沒有安裝插件的瀏覽器環(huán)境執(zhí)行,要不控制臺可能會出現(xiàn)因插件帶來的異常信息
console.log(b);//Uncaught ReferenceError: b is not defined
var a="a";

對于上面的代碼還要注意:
JS存在變量提升的行為,即會把聲明的變量提升到當(dāng)前執(zhí)行上下文的最頂端
所以console.log(a)輸出的是undefined,注意!是undefined!不是a!變量提升提升的是變量的聲明,而不是先執(zhí)行var a="a"這句話。而console.log(b)卻會拋出一個異常,雖然都是‘沒定義’但一定要分清a是undefined,b是not defined是變量沒有聲明,是一個會阻塞JS執(zhí)行的ReferenceError異常
另外ReferenceError異常同作用域判斷失敗相關(guān)

堆棧
不要問我什么是堆棧,我也不知道,不過我通常這么理解:堆,是存放數(shù)據(jù)的堆內(nèi)存;棧就是用來執(zhí)行的盒子容器(真的會被我?guī)模?,這里講棧,其實(shí)通俗來說,棧就是堆棧。

棧遵循先進(jìn)后出,后進(jìn)先出的特點(diǎn),進(jìn)出的是執(zhí)行上下文,最先進(jìn)入的全局上下文,并且在瀏覽器關(guān)閉時才被彈出

JS雖說是單線程的,但也能實(shí)現(xiàn)一些異步特性,進(jìn)入堆棧的就有這么兩種情況:同步情況和異步情況

同步情況當(dāng)然是當(dāng)下進(jìn)入

異步情況常見的包括兩種:延時和事件監(jiān)聽,事件監(jiān)聽常如AJAX,當(dāng)他們的回掉函數(shù)執(zhí)行時才創(chuàng)建其執(zhí)行的上下文放入棧中:

setTimeout(function () {
    console.log(1);
});
console.log(2);

是不是先打印的2?雖然這里并沒有設(shè)置時長,但依舊先執(zhí)行console.log(2),這便是堆棧的機(jī)制,JS執(zhí)行的機(jī)制表現(xiàn)

作用域

這個東西簡單、老生常談,但如果稍不留意還是會經(jīng)常出錯,然而這里我只說幾點(diǎn)不直觀的演示和講解

變量提升會先提升函數(shù)然后才是變量,見下

fa();//fa
fb();//Uncaught TypeError: fb is not a function
//fb()的異常錯誤代表變量已被聲明且作用域判斷成功,但因還沒定義造成的用方錯誤
function fa() {
    console.log("fa");
}
var fb=function () {
    console.log("fb");
};

所以,為了避免混亂,也是推薦的規(guī)范寫法,以后的函數(shù)聲明還是用變量聲明吧。

循環(huán)結(jié)構(gòu)和條件結(jié)構(gòu)的用花括號包裹的代碼塊并不會創(chuàng)建新的作用域,也不是真正的代碼塊,如下

(function(){
    for(var i=0;i<6;i++){
        if(i===3){
            var b=i;
            return false;
        }
        console.log(b);//三次undefined
    }
})();

注意:ES6的let const已做改進(jìn)

類型

不是說數(shù)據(jù)類型哈!
JS包括基本類型和引用類型

基本類型即直接存放在內(nèi)存中的,可以直接訪問的,其包括number string boolean null undefined

引用類型即存放在內(nèi)存中的對象,實(shí)際保存的是一個指針,一個引用,其包括object array function,且看下面的代碼

var a=[1,2,3,4];
var b=a;
b[0]=6;
console.log(a);//[6, 2, 3, 4]

弱類型

這個沒什么好說的,但異常往往總是因此發(fā)生,哪怕不是什么復(fù)雜的工程。所以對純前端尤其值得一提,不僅要知道怎么進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換更要清楚的知道你當(dāng)下在操作的是什么數(shù)據(jù)類型。另外,建議使用全判斷,即如==替換為===

函數(shù)

依舊不負(fù)責(zé)任的說:我不知道js一切皆對象是對是錯,該怎么表述它才是對的或錯的,但除原始值(或者上面說的基本類型)是對象是毫無疑問的,也正式如此,才讓函數(shù)能有多種身份:普通函數(shù)、對象的方法、對象的構(gòu)造器、對象
—————————————————————占位————————————————————————

其他

function免費(fèi)配送了除了this之外的arguments參數(shù),這個在我們不清楚該函數(shù)傳過來那些參數(shù)時比較有用

JS的數(shù)組其實(shí)是對象,是arraylike的對象,所以for等循環(huán)不僅可以操作數(shù)組也可以操作對象,所以也可以給數(shù)組添加非整型下標(biāo),另外數(shù)組的長度是根據(jù)整型作為下標(biāo)的最大值+1得來的

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/84363.html

相關(guān)文章

  • 關(guān)于近期對自己總結(jié)

    摘要:經(jīng)過這段時間的反省,我也強(qiáng)烈的認(rèn)識到自己的不足,也找到了相應(yīng)的方式去改正自己。所以,在這里也給廣大正想尋求新的工作機(jī)會的你一些建議誠然面對自己,了解自己的優(yōu)勢和劣勢。給自己做好定位??辞遄约合胍l(fā)展的方向。近期可能會經(jīng)常性的更新基礎(chǔ)的東西。 北京的黃金三月,應(yīng)去年的計劃,年初換工作,這是回來之后找工作的第四個周,目前收到offer一份,在昨天之前我還深深的覺得自己真的是失敗,菜的不行,...

    leanxi 評論0 收藏0
  • 2017文章總結(jié)

    摘要:歡迎來我的個人站點(diǎn)性能優(yōu)化其他優(yōu)化瀏覽器關(guān)鍵渲染路徑開啟性能優(yōu)化之旅高性能滾動及頁面渲染優(yōu)化理論寫法對壓縮率的影響唯快不破應(yīng)用的個優(yōu)化步驟進(jìn)階鵝廠大神用直出實(shí)現(xiàn)網(wǎng)頁瞬開緩存網(wǎng)頁性能管理詳解寫給后端程序員的緩存原理介紹年底補(bǔ)課緩存機(jī)制優(yōu)化動 歡迎來我的個人站點(diǎn) 性能優(yōu)化 其他 優(yōu)化瀏覽器關(guān)鍵渲染路徑 - 開啟性能優(yōu)化之旅 高性能滾動 scroll 及頁面渲染優(yōu)化 理論 | HTML寫法...

    dailybird 評論0 收藏0
  • 2017文章總結(jié)

    摘要:歡迎來我的個人站點(diǎn)性能優(yōu)化其他優(yōu)化瀏覽器關(guān)鍵渲染路徑開啟性能優(yōu)化之旅高性能滾動及頁面渲染優(yōu)化理論寫法對壓縮率的影響唯快不破應(yīng)用的個優(yōu)化步驟進(jìn)階鵝廠大神用直出實(shí)現(xiàn)網(wǎng)頁瞬開緩存網(wǎng)頁性能管理詳解寫給后端程序員的緩存原理介紹年底補(bǔ)課緩存機(jī)制優(yōu)化動 歡迎來我的個人站點(diǎn) 性能優(yōu)化 其他 優(yōu)化瀏覽器關(guān)鍵渲染路徑 - 開啟性能優(yōu)化之旅 高性能滾動 scroll 及頁面渲染優(yōu)化 理論 | HTML寫法...

    hellowoody 評論0 收藏0
  • 2017文章總結(jié)

    摘要:歡迎來我的個人站點(diǎn)性能優(yōu)化其他優(yōu)化瀏覽器關(guān)鍵渲染路徑開啟性能優(yōu)化之旅高性能滾動及頁面渲染優(yōu)化理論寫法對壓縮率的影響唯快不破應(yīng)用的個優(yōu)化步驟進(jìn)階鵝廠大神用直出實(shí)現(xiàn)網(wǎng)頁瞬開緩存網(wǎng)頁性能管理詳解寫給后端程序員的緩存原理介紹年底補(bǔ)課緩存機(jī)制優(yōu)化動 歡迎來我的個人站點(diǎn) 性能優(yōu)化 其他 優(yōu)化瀏覽器關(guān)鍵渲染路徑 - 開啟性能優(yōu)化之旅 高性能滾動 scroll 及頁面渲染優(yōu)化 理論 | HTML寫法...

    wwolf 評論0 收藏0
  • 關(guān)于IT培訓(xùn)機(jī)構(gòu)個人看法

    摘要:前言緣分與巧合,最近接觸比較多的培訓(xùn)機(jī)構(gòu)出來的人,以及看過關(guān)于培訓(xùn)機(jī)構(gòu)的文章和問答。大部分都對培訓(xùn)機(jī)構(gòu)很反感,其中還包括一些從培訓(xùn)機(jī)構(gòu)出來的人。造成這樣的情況,培訓(xùn)機(jī)構(gòu)的功勞無疑是最大的。 1.前言 緣分與巧合,最近接觸比較多的培訓(xùn)機(jī)構(gòu)出來的人,以及看過關(guān)于培訓(xùn)機(jī)構(gòu)的文章和問答。雖然沒在培訓(xùn)機(jī)構(gòu)上過課,但是接觸過很多培訓(xùn)機(jī)構(gòu)出來的人,也看過一些培訓(xùn)機(jī)構(gòu)的課程。關(guān)于培訓(xùn)機(jī)構(gòu),我也有自己的...

    Forelax 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<