從頭開始 JavaScript

入門篇


JS:是一種解釋性的弱類型腳本語言盾碗,用來給HTML網(wǎng)頁增加動態(tài)功能

JavaScript語句是發(fā)給瀏覽器的命令。這些命令的作用是告訴瀏覽器要做的事情每瞒。

在 JavaScript 中葵袭,對象是擁有屬性和方法的數(shù)據(jù)(JavaScript 中的所有事物都是對象:字符串、數(shù)字进统、數(shù)組、日期浪听,等等螟碎。[一切事物皆對象]

屬性是與對象相關(guān)的值

方法是能夠在對象上執(zhí)行的動作(事件)

JS 組成部分

1、ECMAScript:核心迹栓、擔(dān)當(dāng)?shù)氖且粋€翻譯的角色掉分;是一個解釋器,幫助計算機來讀懂我們寫的程序

2克伊、DOM:文檔對象模型酥郭;文檔指的就是網(wǎng)頁;把網(wǎng)頁變成一個JS可以操作的對象

3愿吹、BOM:瀏覽器對象模型不从;給了JS操作瀏覽器的能力


數(shù)據(jù)類型

原始類型:5種

number(數(shù)值), string(字符串), boolean(true、false),null, undefined

對象類型(引用類型):

如 Object犁跪、Array 椿息、Date歹袁、Function


變量:用來存儲信息的容器

我們可以把變量看做是 存儲數(shù)據(jù)的容器(我們可以把變量看做一個盒子,盒子用來存放物品,var就相當(dāng)于找盒子的動作)

定義變量使用關(guān)鍵字var,語法如下:var變量名(var num = 12寝优;)

變量名可以任意取名条舔,但要遵循命名規(guī)則:

1.變量必須使用字母、下劃線(_)或者美元符($)開始乏矾。

2.然后可以使用任意多個英文字母孟抗、數(shù)字、下劃線(_)或者美元符($)組成妻熊。

3.不能使用JavaScript關(guān)鍵詞與JavaScript保留字夸浅。

變量可以先聲明再賦值仑最,也可以重復(fù)賦值

作用域:變量能夠起作用的范圍

全局變量:其作用域是整個源程序扔役,它不屬于哪一個函數(shù)

局部變量:作用域僅限于函數(shù)內(nèi), 離開該函數(shù)后再使用這個變量是非法的警医。

函數(shù)內(nèi)部可以直接讀取全局變量亿胸,函數(shù)外部無法讀取函數(shù)內(nèi)部的局部變量

函數(shù)內(nèi)部聲明變量時,一定要使用var命令预皇,如果不用侈玄,實際上就聲明了一個全局變量

(注意:從函數(shù)外部讀取局部變量的方法,在函數(shù)的內(nèi)部再定義一個函數(shù))


函數(shù)作用域和塊級作用域

塊級作用域({}稱之為一塊)指的是定義在條件或循環(huán)分支中的

JavaScript函數(shù)沒有塊級作用域

函數(shù)作用域:變量在定義的函數(shù)內(nèi)及嵌套的子函數(shù)內(nèi)處處可見吟温;

塊級函數(shù)域:變量在離開定義的塊級代碼后馬上被回收序仙。


confirm消息對話框通常用于允許用戶做選擇的動作,如:“你對嗎鲁豪?”等潘悼。彈出對話框(包括一個確定按鈕和一個取消按鈕)。

prompt彈出消息對話框,通常用于詢問一些需要與用戶交互的信息爬橡。

彈出消息對話框(包含一個確定按鈕治唤、取消按鈕與一個文本輸入框)。

打開新的窗口 ?window.open('路徑地址','_blank','height=600,width=400,top=100,left=0'); 可以設(shè)置它的工具條滾動條狀態(tài)欄

關(guān)閉本窗口? window.close()糙申;關(guān)閉指定窗口? <窗口對象>.close();

進階篇


文檔對象模型 DOM(Document Object Model)定義訪問和處理HTML文檔的標(biāo)準(zhǔn)方法宾添。DOM 將HTML文檔呈現(xiàn)為帶有元素、屬性和文本的樹結(jié)構(gòu)(節(jié)點樹)柜裸。

HTML文檔可以說由節(jié)點構(gòu)成的集合缕陕,DOM節(jié)點有:

1.元素節(jié)點

2.文本節(jié)點

3.屬性節(jié)點:元素屬性,如標(biāo)簽的鏈接屬性疙挺。

var el = document.getElementById('');? 是通過ID獲取

var el =document.getElementsByName(''); 是通過name獲取

var el =document.getElementsByTagName(''); 是通過標(biāo)簽名獲取

復(fù)選框全選思路:1.先用getElementsByTagName獲取input的標(biāo)簽名 2.for循環(huán) 3.if判斷 如果type=="checkbox"扛邑,就讓它全部選中

var mylist = document.getElementById("tcon");

document.write(mylist.parentNode.parentNode.parentNode.lastChild.innerHTML);

上邊是 獲取id為tcon的元素 ,打印它的祖父節(jié)點(父節(jié)點的父節(jié)點的父節(jié)點)的最后一個節(jié)點的HTML



var衔统、let鹿榜、const聲明變量

1海雪、var:聲明全局變量,能重復(fù)聲明覆蓋舱殿,會出現(xiàn)變量提升的情況

2奥裸、let:聲明局部變量,限制了變量的作用域沪袭,保證變量不會去污染全局變量湾宙,不會出現(xiàn)變量提升

(注意:必須聲明'use strict'后才能使用let聲明變量,否則瀏覽并不能顯示結(jié)果)

3冈绊、const:聲明常量(也具有塊級作用域 )侠鳄,一旦定義就不可改變

定義那些不可以被重新賦值的變量

ES6中,let死宣、const在任何情況下都優(yōu)于var伟恶,所以不建議使用var


函數(shù):由事件驅(qū)動的或者當(dāng)它被調(diào)用時執(zhí)行的可重復(fù)使用的代碼塊。

1毅该、函數(shù)聲明? ? function fn (){}? ? ? ? 【 fn:function(){} 】

會被解析器自動提升到代碼的頭部博秫,違背了函數(shù)先定義后使用的要求。這里的函數(shù)名fn是必須要有的

2眶掌、函數(shù)表達(dá)式(命名式函數(shù))? var a = function fn(){}挡育;

3、自運行函數(shù) (function fn (){})();? 用于存放開發(fā)插件的代碼

函數(shù)這么定義的原因就是為了封閉作用域而不至于污染其他文件

4朴爬、匿名函數(shù)? 不能直接聲明即寒、需要賦值調(diào)用

window.onload=function(){}

var say = function(){}


jQuery(function(){ })與(function(){ })(jQuery)

jQuery(function(){ }) ;用于存放操作DOM對象的代碼,執(zhí)行其中代碼時DOM對象已存在召噩。不可用于存放開發(fā)插件的代碼母赵,因 為jQuery對象沒有得到傳遞,外部通過jQuery.method也調(diào)用不了其中的方法(函數(shù))蚣常。

(function(){ })(jQuery)市咽;用于存放開發(fā)插件的代碼,執(zhí)行其中代碼時DOM不一定存在抵蚊,所以直接自動執(zhí)行DOM操作的代碼施绎,請小心使用。


原型 ? prototype和__proto__

顯式原型:prototype 是函數(shù)的一個屬性(每個函數(shù)都有一個prototype屬性)贞绳,這個屬性是一個指針谷醉,指向一個對象。它是顯示修改對象的原型的屬性冈闭、返回的是對象的類的原型

隱式原型:__proto__? 是一個對象擁有的內(nèi)置屬性(請注意:prototype是函數(shù)的內(nèi)置屬性俱尼,__proto__是對象的內(nèi)置屬性),是JS內(nèi)部使用尋找原型鏈的屬性萎攒,用于調(diào)試

用chrome和FF都可以訪問到對象的__proto__屬性遇八,IE不可以矛绘。


this

this指當(dāng)前對象

1、在函數(shù)外使用刃永,this指向window

2货矮、在函數(shù)內(nèi)使用

(1)函數(shù)直接被調(diào)用

(function fn(){console.log(this)})();

(2)被事件所調(diào)用,并且以賦值的形式出現(xiàn)(這兩個條件缺一不可)

誰調(diào)用了函數(shù)斯够,this就指向誰


AJAX請求

$.ajax({

? ? ? type: 'GET', ? ? ? ? ? ? ?// 這是請求的方式 可以是GET方式也可以是POST方式, 默認(rèn)是GET

? ? ? url: ' xxx.php ', ? ? ? ? ?// 這是請求的連接地址 一般情況下這個地址是后臺給前端的一個連接囚玫,直接寫就可以

? ? ? dataType: 'json', ? ? ? // 這是后臺返回的數(shù)據(jù)類型 一般情況下都是一個json數(shù)據(jù), 前端遍歷一下就OK

? ? ? data: { ? ? ? // 要傳遞的參數(shù)? 'xxx' : 'xxx', },

? ? ? success: function (data) { // 發(fā)送請求成功后開始執(zhí)行读规,data是請求成功后抓督,返回的數(shù)據(jù) },

? ? ? error: function (xhr, textStatus, errorThrown) { ? ? ? //? 請求失敗后就開始執(zhí)行,請求超時后束亏,在這里執(zhí)行請求超時后要執(zhí)行的函數(shù) }

? ? ? async: true, ? ? ? ? ? ? ? // 默認(rèn)為true铃在,默認(rèn)為true時,所有請求均為異步請求枪汪,如果需要發(fā)送同步請求涌穆,需設(shè)置為false,

? ? ? timeout: 8000, ? ? ? ? ?// 設(shè)置請求超時時間(毫秒)。此設(shè)置將覆蓋全局設(shè)置

? ? ? beforeSend: function () { ? ? ? // 在發(fā)送請求前就開始執(zhí)行 (一般用來顯示loading圖)? },

? ? ? complete: function () { ? ? ? //當(dāng)請求完成后開始執(zhí)行雀久,無論成功或是失敗都會執(zhí)行 (一般用來隱藏loading圖) },

}).done(function () { ? ? ?// 這個函數(shù)是在ajax數(shù)據(jù)加載完之后,對數(shù)據(jù)進行的判斷趁舀,在涉及到對ajax數(shù)據(jù)進行操作無效時赖捌,在這個函數(shù)里面寫是可以起到效果的

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市矮烹,隨后出現(xiàn)的幾起案子越庇,更是在濱河造成了極大的恐慌,老刑警劉巖奉狈,帶你破解...
    沈念sama閱讀 212,686評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件卤唉,死亡現(xiàn)場離奇詭異,居然都是意外死亡仁期,警方通過查閱死者的電腦和手機桑驱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來跛蛋,“玉大人熬的,你說我怎么就攤上這事∩藜叮” “怎么了押框?”我有些...
    開封第一講書人閱讀 158,160評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長理逊。 經(jīng)常有香客問我橡伞,道長盒揉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,736評論 1 284
  • 正文 為了忘掉前任兑徘,我火速辦了婚禮预烙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘道媚。我一直安慰自己扁掸,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,847評論 6 386
  • 文/花漫 我一把揭開白布最域。 她就那樣靜靜地躺著谴分,像睡著了一般。 火紅的嫁衣襯著肌膚如雪镀脂。 梳的紋絲不亂的頭發(fā)上牺蹄,一...
    開封第一講書人閱讀 50,043評論 1 291
  • 那天,我揣著相機與錄音薄翅,去河邊找鬼沙兰。 笑死,一個胖子當(dāng)著我的面吹牛翘魄,可吹牛的內(nèi)容都是我干的鼎天。 我是一名探鬼主播,決...
    沈念sama閱讀 39,129評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼暑竟,長吁一口氣:“原來是場噩夢啊……” “哼斋射!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起但荤,我...
    開封第一講書人閱讀 37,872評論 0 268
  • 序言:老撾萬榮一對情侶失蹤罗岖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后腹躁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桑包,經(jīng)...
    沈念sama閱讀 44,318評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,645評論 2 327
  • 正文 我和宋清朗相戀三年纺非,在試婚紗的時候發(fā)現(xiàn)自己被綠了哑了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,777評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡铐炫,死狀恐怖垒手,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情倒信,我是刑警寧澤科贬,帶...
    沈念sama閱讀 34,470評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響榜掌,放射性物質(zhì)發(fā)生泄漏优妙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,126評論 3 317
  • 文/蒙蒙 一憎账、第九天 我趴在偏房一處隱蔽的房頂上張望套硼。 院中可真熱鬧,春花似錦胞皱、人聲如沸邪意。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽雾鬼。三九已至,卻和暖如春宴树,著一層夾襖步出監(jiān)牢的瞬間策菜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評論 1 267
  • 我被黑心中介騙來泰國打工酒贬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留又憨,地道東北人。 一個月前我還...
    沈念sama閱讀 46,589評論 2 362
  • 正文 我出身青樓锭吨,卻偏偏與公主長得像蠢莺,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子耐齐,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,687評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品浪秘,去做同樣的事情,實現(xiàn)同樣的效果;這時候需要使用工廠模式埠况。簡單...
    舟漁行舟閱讀 7,729評論 2 17
  • @轉(zhuǎn)自GitHub 介紹js的基本數(shù)據(jù)類型。Undefined棵癣、Null辕翰、Boolean、Number狈谊、Strin...
    YT_Zou閱讀 1,147評論 0 0
  • 贛湘兩省池氏五修族譜 [不分卷] 民國10[1921]年五修. 存6冊 : 圖像, 世系表. 注: 本譜不全, 不...
    云家譜閱讀 633評論 0 0
  • 爸媽是矛牌里,我們是盾,在一起,全是矛盾牡辽。 矛盾一喳篇,很不幸,基因突變态辛,我是個蝸牛麸澜。 爸媽,是同一類不同種的神奇動物奏黑,不...
    小小師弟閱讀 400評論 0 2
  • 大早上一直做夢 卻被大家討論下雪而驚醒 這次的雪是今年第二次下雪 卻是挺大的 上課前陰差陽錯的 就剩我倆了 她去廁...
    Lucky黑girl閱讀 193評論 0 0