網(wǎng)頁(yè) = Html+CSS+JavaScript:
Html: 網(wǎng)頁(yè)元素內(nèi)容;CSS: 控制網(wǎng)頁(yè)樣式;JavaScript:操作網(wǎng)頁(yè)內(nèi)容羹膳,實(shí)現(xiàn)功能或者效果
引入方式:alert(1);alert(1);
<script src="index.js"></script>
<script> alert(1) ?</script>
白屏問(wèn)題:
使用 link 標(biāo)簽將樣式表放在頂部
如果把樣式放在底部,對(duì)于IE瀏覽器,在某些場(chǎng)景下(新窗口打開(kāi),刷新等)頁(yè)面會(huì)出現(xiàn)白屏,而不是內(nèi)容逐步展現(xiàn)
如果使用@import標(biāo)簽,即使 CSS 放入 link, 并且放在頭部,也可能出現(xiàn)白屏
將JS放在底部
對(duì)于圖片和CSS, 在加載時(shí)會(huì)并發(fā)加載(如一個(gè)域名下同時(shí)加載兩個(gè)文件). 但在加載 JavaScript 時(shí),會(huì)禁用并發(fā),并且阻止其他內(nèi)容的下載. 所以把 JavaScript 放入頁(yè)面頂部也會(huì)導(dǎo)致白屏現(xiàn)象.
加載異步
沒(méi)有 defer 或 async晰甚,瀏覽器會(huì)立即加載并執(zhí)行指定的腳本掖看,“立即”指的是在渲染該 script 標(biāo)簽之下的文檔元素之前鲸鹦,也就是說(shuō)不等待后續(xù)載入的文檔元素周循,讀到就加載并執(zhí)行测蘑。
有 async磅氨,加載和渲染后續(xù)文檔元素的過(guò)程將和 script.js 的加載與執(zhí)行并行進(jìn)行(異步)。
有 defer讽挟,加載后續(xù)文檔元素的過(guò)程將和 script.js 的加載并行進(jìn)行(異步)懒叛,但 script.js 的執(zhí)行要在所有元素解析完成之后,DOMContentLoaded 事件觸發(fā)之前完成耽梅。
defer:腳本延遲到文檔解析和顯示后執(zhí)行薛窥,有順序
async:不保證順序
基本調(diào)試:
alert
console.log
打斷點(diǎn)
二分法
關(guān)鍵字:
關(guān)鍵字是JavaScript引擎會(huì)用到的一些字,我們標(biāo)識(shí)符不能再使用
保留字
除了這些不能用作標(biāo)識(shí)符的關(guān)鍵字眼姐,js還規(guī)定了一些不能用作標(biāo)識(shí)符的保留字诅迷,這些字符沒(méi)有什么意義,但是未來(lái)會(huì)用到
數(shù)據(jù)類(lèi)型:
數(shù)值(number):整數(shù)和小數(shù)(比如1和3.14)
字符串(string):字符組成的文本(比如"Hello World")
布爾值(boolean):true(真)和false(假)兩個(gè)特定值
undefined:表示“未定義”或不存在众旗,即此處目前沒(méi)有任何值
null:表示空缺罢杉,即此處應(yīng)該有一個(gè)值,但目前為空
對(duì)象(object):各種值組成的集合數(shù)值(number):整數(shù)和小數(shù)(比如1和3.14)
JavaScript有三種方法贡歧,可以確定一個(gè)值到底是什么類(lèi)型滩租。
typeof運(yùn)算符
instanceof運(yùn)算符
Object.prototype.toString方法
typeof運(yùn)算符可以返回一個(gè)值的數(shù)據(jù)類(lèi)型,可能有以下結(jié)果利朵。
對(duì)于null和undefined律想,可以大致可以像下面這樣理解
null表示空值,即該處的值現(xiàn)在為空绍弟。典型用法是:
作為函數(shù)的參數(shù)技即,表示該函數(shù)的參數(shù)是一個(gè)沒(méi)有任何內(nèi)容的對(duì)象。
作為對(duì)象原型鏈的終點(diǎn)晌柬。
undefined表示不存在值姥份,就是此處目前不存在任何值。典型用法是:
變量被聲明了年碘,但沒(méi)有賦值時(shí)澈歉,就等于undefined。
調(diào)用函數(shù)時(shí)屿衅,應(yīng)該提供的參數(shù)沒(méi)有提供埃难,該參數(shù)等于undefined。
對(duì)象沒(méi)有賦值的屬性涤久,該屬性的值為undefined涡尘。
函數(shù)沒(méi)有返回值時(shí),默認(rèn)返回undefined响迂。
Number:
JavaScript的數(shù)字類(lèi)型和其它語(yǔ)言有所不同考抄,沒(méi)有整型和浮點(diǎn)數(shù)的區(qū)別,統(tǒng)一都是Number類(lèi)型蔗彤,可以表示十進(jìn)制川梅、八進(jìn)制疯兼、十六進(jìn)制
JavaScript Number不能表示所有數(shù)字,Infinity 表示無(wú)窮大;
NaN含義是Not a Number贫途,表示非數(shù)字吧彪,NaN和任何值都不相等,包括自己
數(shù)值轉(zhuǎn)換
有三個(gè)函數(shù)可以把非數(shù)值轉(zhuǎn)換為數(shù)值
1.Number()2.parseInt()3.parseFloat()
parseInt? StringparseFloat
1.忽略字符串前面的空白字符丢早,找到第一個(gè)非空白字符
2.如果第一個(gè)字符不是-或者數(shù)字返回NaN
3.如果是繼續(xù)解析姨裸,直到非數(shù)值模式為止
4.0開(kāi)頭會(huì)當(dāng)做八進(jìn)制,0x開(kāi)頭會(huì)當(dāng)做十六進(jìn)制怨酝,但是可以指定第二個(gè)參數(shù)指定基數(shù)
String
String是Unicode字符組成的序列傀缩,俗稱(chēng)字符串,可以用雙引號(hào)或者單引號(hào)表示凫碌,沒(méi)有區(qū)別扑毡,匹配即可
Object
對(duì)象,就是一種無(wú)序的數(shù)據(jù)集合盛险,由若干個(gè)“鍵值對(duì)”(key-value)構(gòu)成瞄摊。key我們稱(chēng)為對(duì)象的屬性,value可以是任何JavaScript類(lèi)型苦掘,甚至可以是對(duì)象
忽略字符串前面的空白字符换帜,找到第一個(gè)非空白字符
如果第一個(gè)字符不是-或者數(shù)字返回NaN
如果是繼續(xù)解析,直到非數(shù)值模式為止
0開(kāi)頭會(huì)當(dāng)做八進(jìn)制鹤啡,0x開(kāi)頭會(huì)當(dāng)做十六進(jìn)制惯驼,但是可以指定第二個(gè)參數(shù)指定基數(shù)