JavaScript 學(xué)習(xí)筆記 since 2020.02.11

標(biāo)準(zhǔn)ECMAScript,JavaScript是一種實(shí)現(xiàn)標(biāo)準(zhǔn)募疮。

JS可鑲嵌在網(wǎng)頁中捞挥。

方法1:放在<head>中的<script>...</script>中

<html> <head> <script>

alert('hello this is JS');

</script> </head> <body> ...</body> </html>

方法2:

放在一個(gè).js文件中纤掸,并在html中引用

<html> <head> <script src="...path/file.js"></script>...

(2020.02.17補(bǔ) 上述兩種方法官份,JS的引用都在head中窘游,JS文件會(huì)依次解釋逻淌,在解釋器對(duì)head中內(nèi)容完成解釋之前肥惭,html頁面不會(huì)被瀏覽器加載和顯示宋雏,這種引用會(huì)出現(xiàn)明顯的加載延遲在有些情況下。一種更好的引用方式是在<body>中頁面內(nèi)容的后面引用JS文件[2]务豺。如下:

<body>

<!--html頁面內(nèi)容-->

<scripts type = 'text/javascript' src = 'xxx.js'></script>

</body>

JS可寫在html中磨总,但是建議寫成外部文件調(diào)用js,可以提高可維護(hù)性笼沥,亦可緩存以提高加載速度蚪燕。

)

語法與Java相似,每個(gè)語句用“;”結(jié)尾奔浅,但并不嚴(yán)格馆纳,瀏覽器會(huì)在沒有";"結(jié)尾的語句中自動(dòng)加入,為便于閱讀汹桦,建議加入鲁驶。

賦值 var x = 1; //如果一個(gè)變量沒有用var聲明就使用,則成為全局變量;但如果在.js文件頭加入字符'use strict'舞骆,則在變量初始化時(shí)如未使用var钥弯,會(huì)出現(xiàn)

{}部分注意換行時(shí)的縮進(jìn);

注釋的方式//, /*...*/督禽;

嚴(yán)格區(qū)分大小寫脆霎;

動(dòng)態(tài)語言:類型不固定,而靜態(tài)語言如Java狈惫,在初始化時(shí)需要指定類型名睛蛛,并且修改值時(shí)只能在同類型值中修改。

判斷兩個(gè)值是否相同胧谈,使用'==='忆肾,而非'=='。前者比較數(shù)據(jù)時(shí)如果類型不同則返回false菱肖,只比較同類型數(shù)據(jù)客冈,而后者比較時(shí)會(huì)先轉(zhuǎn)換類型再做比較。注意:堅(jiān)決使用'==='比較數(shù)據(jù)蔑滓,不使用'=='郊酒。

邏輯運(yùn)算:與&&? 或|| 非!

數(shù)字類型不區(qū)分float和int遇绞,NaN/Infinity也是數(shù)字。注意NaN與自身的比較也會(huì)返回false燎窘,NaN === NaN返回false摹闽。十六進(jìn)制: 0x...

空值是null,未定義是undefined褐健。

JS的字典稱作對(duì)象付鹿,定義形式與python相同,引用方式dict_name.feature蚜迅。

字符串:特殊符號(hào)舵匾,比如",在字符中顯示時(shí)需要加\谁不,如\"坐梯,換行\(zhòng)n等等。

字符串拼接 >>

var a = 1; var b = 'ext';

var c = a+ b + 'asdf'

字符串c的自帶方法, .length(), .toUpperCase(), .toLowerCase(), .substring(start_index, end_index = last_ele), .indexOf(...返回..的首index)

數(shù)組array:

元素可修改刹帕,通過a[index] = ...的方式修改吵血,類比Python的list。

數(shù)組定義完成了如果賦值的index超過了數(shù)組長度偷溺,則數(shù)組自動(dòng)延長蹋辅,沒定義的indices都被定義為undefined.

a.indexOf(x)返回?cái)?shù)組中元素x的index。

a.slice(s, e): 類似于字符串的substring功能挫掏,注意end index是e-1侦另,這點(diǎn)與Python相同。

push/pop分別是向尾部添加元素和蔥尾部刪除元素尉共。

unshift/shift分別是向頭部添加元素和從頭部刪除元素褒傅。

splice(si, number, ...)是指定一個(gè)初始位置si,其后的number個(gè)元素被后面的...替換爸邢。如果不指定替換元素樊卓,則刪除前面指定位置的元素。

concat([..])相當(dāng)于拼接杠河。

用符號(hào)拼接,a.join('-')

條件判斷 if () {} else {}:

如果執(zhí)行語句只有一條浇辜,可以去掉{}券敌,但是建議不管執(zhí)行語句多少條都加{}.并不以自動(dòng)縮進(jìn)作為語句的語法。每條指令的結(jié)束加';'柳洋,這個(gè)';'要加在{}以內(nèi)待诅。條件語句中的并列條件中間用&&而非Python中的and。

沒有':'只有';'在else之前熊镣。

循環(huán):

for (初始條件; 終止條件; 變化)? {;}? 類似于C++

for ... in ...循環(huán)的表達(dá)

var ad = {key1: 1, key2: 2};

for (var x in ad) {console.log(x);} 其中的x是ad的key

var aa = ['1','asdf',2']

for (var x in aa) {console.log(x); console.log(aa[x]);}其中的x返回?cái)?shù)組的index卑雁。

for (var x of aa) {console.log(x);}x是數(shù)組中的元素募书。

while(條件) {執(zhí)行語句; 變化;}

do {執(zhí)行語句; 變化;} while (條件);

JavaScript有行末自動(dòng)添加分號(hào)的機(jī)制

JS函數(shù):

形式1

function fn(x,y) { 執(zhí)行語句; return ans;}

形式2(匿名函數(shù)形式)

var fn = function(x,y) { 執(zhí)行語句; return ans;};

JS的函數(shù)引入一個(gè)關(guān)鍵字arguments测蹲,在函數(shù)內(nèi)部不需要定義arguments莹捡,它代表了函數(shù)傳入的所有變量,可以當(dāng)做一個(gè)數(shù)組扣甲。如arguments.length返回傳入?yún)?shù)個(gè)數(shù)篮赢。

2020.02.13

函數(shù)中變量的作用域:

在函數(shù)中定義變量時(shí)加var可使其成為局部變量。

JS掃描函數(shù)體琉挖,在一個(gè)函數(shù)內(nèi)启泣,只要一個(gè)變量被聲明,不管是在調(diào)用前后示辈,變量都被"提升"寥茫,也就是后聲明不會(huì)報(bào)錯(cuò)。但如果調(diào)用在聲明前矾麻,返回undefined坠敷,即變量聲明被提升,但變量賦值不會(huì)提升射富。建議用一個(gè)var在函數(shù)開始聲明所有變量膝迎,形式如

var x=1, y = 2, z = 3;

注意其中標(biāo)點(diǎn)符號(hào)使用。

不在函數(shù)內(nèi)定義的變量都是全局變量胰耗,全局變量的調(diào)用限次,可以直接調(diào)用變量名,也可以通過調(diào)用JS默認(rèn)的全局對(duì)象windows的以變量名為名的屬性柴灯。如下

'use strict'

var x = 1;

alert(window.x);

函數(shù)也是全局對(duì)象的一種屬性卖漫,直接調(diào)用函數(shù)名和通過window.函數(shù)名()方式調(diào)用的效果相同。

為避免定義的函數(shù)與window namespace中的變量/函數(shù)重名赠群,可在程序開始定義一個(gè)字典羊始,用以保存自定義的變量和函數(shù),對(duì)變量和函數(shù)的定義都是字典的一個(gè)key查描。

解析賦值

一個(gè)數(shù)組的元素賦給不同的變量

var [x, [y, z]] = [1,[2,3]]

(對(duì)象中的)方法:

對(duì)象(即字典)中不僅可以保存變量突委,也可以保存函數(shù)。形如

var aob = { birth: 99,

age : function () { var x = this.birth - 1;

return x;}

};

age函數(shù)中的this.birth引用了aob對(duì)象中的變量birth冬三,this類似于python類中的self.


2020.02.14

window.onload()方法(插入在html文件中的)用于在網(wǎng)頁加載完成后立即執(zhí)行的方法匀油,通常用于<body>元素。


reference:

1

2 http://www.reibang.com/p/10197543d14e

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末勾笆,一起剝皮案震驚了整個(gè)濱河市敌蚜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌窝爪,老刑警劉巖弛车,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件齐媒,死亡現(xiàn)場離奇詭異,居然都是意外死亡纷跛,警方通過查閱死者的電腦和手機(jī)喻括,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忽舟,“玉大人双妨,你說我怎么就攤上這事《T模” “怎么了刁品?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵痢掠,是天一觀的道長蹦漠。 經(jīng)常有香客問我,道長傀蓉,這世上最難降的妖魔是什么勒叠? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任兜挨,我火速辦了婚禮,結(jié)果婚禮上眯分,老公的妹妹穿的比我還像新娘拌汇。我一直安慰自己,他們只是感情好弊决,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布噪舀。 她就那樣靜靜地躺著,像睡著了一般飘诗。 火紅的嫁衣襯著肌膚如雪与倡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天昆稿,我揣著相機(jī)與錄音纺座,去河邊找鬼。 笑死溉潭,一個(gè)胖子當(dāng)著我的面吹牛净响,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播岛抄,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼氯庆,長吁一口氣:“原來是場噩夢啊……” “哼仁讨!你這毒婦竟也來了洞豁?” 一聲冷哼從身側(cè)響起刁卜,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎洒嗤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體终吼,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡幔戏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年陆馁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡互婿,死狀恐怖驮配,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情灰殴,我是刑警寧澤牺陶,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布怀估,位于F島的核電站狮鸭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜历筝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望叠荠。 院中可真熱鬧榛鼎,春花似錦鳖孤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽隙姿。三九已至,卻和暖如春哎甲,著一層夾襖步出監(jiān)牢的瞬間貌虾,已是汗流浹背叶圃。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國打工码党, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留德崭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓揖盘,卻偏偏與公主長得像眉厨,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子兽狭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

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

  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,125評(píng)論 0 3
  • 第一部分:快速入門JS學(xué)習(xí)中的一些注意點(diǎn):2018.8.16基礎(chǔ)知識(shí): 入門JavaScript是世界上最流行的腳...
    天山雪蓮_38324閱讀 537評(píng)論 0 1
  • 第三章 類型憾股、值和變量 1、存取字符串箕慧、數(shù)字或布爾值的屬性時(shí)創(chuàng)建的臨時(shí)對(duì)象稱做包裝對(duì)象服球,它只是偶爾用來區(qū)分字符串值...
    坤少卡卡閱讀 628評(píng)論 0 1
  • JavaScript語言精粹 前言 約定:=> 表示參考相關(guān)文章或書籍; JS是JavaScript的縮寫。 本書...
    微笑的AK47閱讀 578評(píng)論 0 3
  • 第一章 前端三大語言:HTML(專門編寫網(wǎng)頁內(nèi)容)销钝、CSS(編寫網(wǎng)頁樣式)有咨、JS(專門編寫網(wǎng)頁交互行為) 能簡寫盡...
    fastwe閱讀 939評(píng)論 0 0