JavaScript

邏輯判斷:
2個(gè)可用三元運(yùn)算符或邏輯運(yùn)算符"||"
2個(gè)或以上個(gè)用if..else if..else條件判斷語(yǔ)句
3個(gè)以上用switch(n){ case x:語(yǔ)句一;break;default:語(yǔ)句二; }

標(biāo)識(shí)符:變量名,函數(shù)名,屬性名以及函數(shù)的參數(shù),由字母,數(shù)字,下劃線_或美元符$組成,不能以數(shù)字開頭,不能使用關(guān)鍵字保留字

變量是用于保存值的占位符,通過(guò)關(guān)鍵字(操作符)var來(lái)聲明變量,關(guān)鍵字是JS內(nèi)部使用的名字,保留字是為未來(lái)JS擴(kuò)展使用的關(guān)鍵字

Math.pow(2,1024)2的1024次方,JS中數(shù)值大于等于2^1024表示正無(wú)窮大

var a=1.2,b=1.1,c=a-b;c===0.1;false,當(dāng)值為浮點(diǎn)數(shù)時(shí)產(chǎn)生的特殊情況

null==undefined;true(因?yàn)閡ndefined派生自null值)null===undefined;false

window.onload加載完成html和css后才運(yùn)行JS代碼,防止JS阻塞html頁(yè)面加載

轉(zhuǎn)義字符用反斜杠表示"" "\n"換行符 "\b"退格 "\反斜杠"(轉(zhuǎn)義自己)

es6通過(guò)關(guān)鍵字let聲明變量,聲明不提前,const聲明常量,值不可變

1.弱類型語(yǔ)言,聲明變量不需要聲明其數(shù)據(jù)類型
2.解釋型語(yǔ)言,一邊編譯瀏覽器一邊讀取(編譯型一次性翻譯完成才執(zhí)行代碼)

構(gòu)成:
1.ECMAScript,描述了JS的核心語(yǔ)法和基本對(duì)象
2.DOM(文檔對(duì)象模型),提供訪問和操作網(wǎng)頁(yè)內(nèi)容的方法和接口
3.BOM(瀏覽器對(duì)象模型),提供與瀏覽器交互的方法和接口

引入方式:
1.放入html標(biāo)簽中
2.外部引入js文件
3.<head>里或<body>后面,建議放body里否則會(huì)阻塞html頁(yè)面讀取

變量的類型:
1.原始數(shù)據(jù)類型(簡(jiǎn)單數(shù)據(jù)類型/基本數(shù)據(jù)類型)
2.引用數(shù)據(jù)類型(復(fù)雜數(shù)據(jù)類型)
數(shù)據(jù)類型由數(shù)據(jù)的值決定,用typeof()判斷

typeof()值:
String
Number
Boolean
undefined
function
Object(Array,null)

isNaN():
判斷是否為非數(shù)字值
其中NaN/undefined/object/非純數(shù)值類型字符串等為true;
數(shù)值/純數(shù)值型字符串/空字符串/布爾值/null/new Date()等內(nèi)置對(duì)象為false
(數(shù)值類型的字符串用于判斷時(shí)程序會(huì)將其隱式轉(zhuǎn)換成數(shù)值)

原始數(shù)據(jù)類型:
1.String字符串由零或多個(gè)字符組成,包括字母數(shù)字符號(hào)空格等,用引號(hào)包裹,可通過(guò)加號(hào)拼接,長(zhǎng)度length,可下標(biāo)獲取
2.Number包括所有數(shù)值,浮點(diǎn)數(shù)/整數(shù)/其他進(jìn)制數(shù)值,八進(jìn)制由0開頭,十六進(jìn)制由0x開頭(瀏覽器打印出來(lái)的值都為十進(jìn)制數(shù)值)
number類型三種特殊值:NaN,Infinity,-Infinity(科學(xué)計(jì)數(shù)法eg:123e2=12300,e為10,2為平方;NaN不等于NaN!)
3.Boolean布爾值true/false,常用來(lái)進(jìn)行程序判斷(不能用引號(hào)包裹否則變成字符串)
4.null(空對(duì)象指針)代表空對(duì)象的引用,可用來(lái)清空對(duì)象,typeof返回的是object! 若變量將用于保存對(duì)象,可將變量初始化為null
null通常產(chǎn)生于程序運(yùn)行過(guò)程中,當(dāng)定義的變量不再使用時(shí),變量就會(huì)賦值為null(JS中內(nèi)存自動(dòng)清除機(jī)制)
5.undefined表示聲明了變量但未賦值的值(未聲明的變量typeof也為undefined且在其他函數(shù)中運(yùn)行會(huì)報(bào)錯(cuò))通常聲明變量后沒有賦值,程序自動(dòng)賦值undefined

引用數(shù)據(jù)類型:
1.object(對(duì)象):
屬性(事物固有特性)和方法(事物能做什么)的集合
定義對(duì)象是在棧內(nèi)存中儲(chǔ)存了一個(gè)指針,指向該對(duì)象的儲(chǔ)存路徑,復(fù)制對(duì)象即是復(fù)制路徑,所以改變對(duì)象屬性時(shí)復(fù)制拿到的值也是改變后的屬性
語(yǔ)法:鍵值對(duì)的形式,鍵名和鍵值用冒號(hào)隔開,屬性/方法間用逗號(hào)隔開,對(duì)象里的屬性/方法(打印整個(gè)方法,調(diào)用則需加括號(hào))通過(guò)點(diǎn)運(yùn)算符來(lái)進(jìn)行訪問
2..array(數(shù)組):
數(shù)據(jù)的集合體,用來(lái)裝載不同的數(shù)據(jù)類型,數(shù)據(jù)間用逗號(hào)隔開
訪問(讀寫)數(shù)組里的元素通過(guò)元素的下標(biāo)拿到,下標(biāo)從零開始
創(chuàng)建方式:1.var arr = new Array();(若已先知數(shù)組長(zhǎng)度可填入括號(hào)中,若寫入一個(gè)以上則認(rèn)為是數(shù)組內(nèi)容);2.字面量表示法:var arr = [1,2,3];
3.function(函數(shù)):具有一定功能的代碼塊

數(shù)據(jù)類型轉(zhuǎn)換:
1.toString(num)/n.toString():將數(shù)值類型轉(zhuǎn)換為字符串(null與undefined報(bào)錯(cuò))num代表了轉(zhuǎn)換為幾進(jìn)制數(shù)值的字符串
2.toFixed(num):將數(shù)值類型轉(zhuǎn)換為字符串,num表示數(shù)值需要保留幾位,默認(rèn)值為0,遵循四舍五入法則,字符串無(wú)該方法
3.parseInt(要轉(zhuǎn)的字符串,字符串進(jìn)制數(shù)(基數(shù))):將字符串轉(zhuǎn)換為整數(shù)(0xA=>10,最后輸出值都為十進(jìn)制),從頭檢測(cè)直至非數(shù)值之前,與number()不同,number()比較嚴(yán)格(開頭非數(shù)值返回NaN,開頭為0則忽略)
4.parseFloat():將字符串轉(zhuǎn)換為浮點(diǎn)數(shù),不能轉(zhuǎn)換十進(jìn)制以外數(shù)值的字符串,若第一個(gè)字符為0且該0不是小數(shù)點(diǎn)前面一位,則忽略0

強(qiáng)制類型轉(zhuǎn)換:
1.String():強(qiáng)制轉(zhuǎn)換為字符串,null與undefined亦可
2.Boolean():null,undefined,0,"",NaN均轉(zhuǎn)換為false,其他都為true
3.Number():純數(shù)值字符串轉(zhuǎn)換為對(duì)應(yīng)的數(shù)值,否則為NaN,空字符串/null/false/空數(shù)組=>0;true=>1;引用數(shù)據(jù)類型/undefined:NaN

算術(shù)運(yùn)算符:
在字符串前加減乘除法運(yùn)算符都可將字符串轉(zhuǎn)換為數(shù)值類型
+(加法運(yùn)算或拼接) - * /(若分母為零,結(jié)果為無(wú)窮大) % ++ --用于變量或者值之間的算術(shù)運(yùn)算

賦值運(yùn)算符:
= += -+ *= /= %=

比較運(yùn)算符:(二元運(yùn)算符)

< == === != !==(不僅比較值還比較類型,只有在相同類型下,才會(huì)比較其值,可看成==比較后的非運(yùn)算)
比較運(yùn)算符的返回值都是布爾值,非數(shù)值字符串之間的比較是通過(guò)他們的Unicode碼來(lái)進(jìn)行比較的

邏輯運(yùn)算符:
優(yōu)先級(jí)為非與或
!:取反(返回布爾值;負(fù)負(fù)得正)
&&:一假即假;若有多個(gè)操作數(shù)且都為真則返回最后一個(gè)操作數(shù);若操作數(shù)中有一個(gè)為null / NaN / undefined,則優(yōu)先返回這三個(gè)值
||:一真即真(從第一個(gè)語(yǔ)句開始判斷,若此語(yǔ)句為真則不繼續(xù)執(zhí)行下一語(yǔ)句直接返回結(jié)果;當(dāng)?shù)谝粋€(gè)語(yǔ)句為假時(shí)程序會(huì)繼續(xù)執(zhí)行直至輸出結(jié)果)

條件運(yùn)算符:(三元運(yùn)算符)
一元運(yùn)算符:自增/自減/取反
語(yǔ)法:語(yǔ)句1在扰?語(yǔ)句2:語(yǔ)句3;若語(yǔ)句1成立則執(zhí)行語(yǔ)句2,否則執(zhí)行語(yǔ)句3

字符串對(duì)象的方法:

concat()拼接多個(gè)字符串

trim()用來(lái)去掉字符串中前后空格符

toUpperCase(),將字符串變?yōu)榇髮?不修改原字符串

toLowerCase(),將字符串變?yōu)樾?不修改原字符串

match()用于搜索字符串中與之匹配的字符,返回值為數(shù)組,數(shù)組里包括了字符的值和第一次出現(xiàn)字符的下標(biāo)值

replace(n,m),用于字符串中用字符串m替換目標(biāo)字符n,返回值是被替換后字符串,不改變?cè)瓟?shù)組(只替換第一個(gè)n)

charAt()通過(guò)下標(biāo)值拿到對(duì)應(yīng)字符,若傳入的值不在字符串下標(biāo)值范圍內(nèi)則返回空字符串(charCodeAt是拿到字符的字符編碼)

indexOf()搜索字符第一次出現(xiàn)的位置,若搜索的字符不在字符串里則返回-1,返回?cái)?shù)值為子字符串的位置(lastIndexOf從后往前檢索)

slice(n,m)用于截取字符串中一段字符返回一個(gè)新字符串;當(dāng)傳入一個(gè)參數(shù)則從傳入的參數(shù)位置開始截取到最后一個(gè)字符;
傳入兩個(gè)參數(shù)則截取n-m之間的字符(包括n但不包括m);若傳入的n為負(fù)數(shù)則從末尾開始截取,用字符串長(zhǎng)度加上該負(fù)數(shù)以確定相應(yīng)的位置(m也一樣)

substring()同slice(),只是傳入?yún)?shù)為負(fù)數(shù)時(shí)自動(dòng)轉(zhuǎn)成0,如(2,-1)會(huì)轉(zhuǎn)為(0,2)自動(dòng)排序

split(n,m)用于切割字符串,返回一個(gè)數(shù)組(多用于字符串轉(zhuǎn)化成數(shù)組),n代表用于切割的切割符,m(可選)用于代表切割后的數(shù)組長(zhǎng)度
注意:n這個(gè)切割符會(huì)和字符串對(duì)比,若字符串中有n這個(gè)字符則就在n這個(gè)位置將字符串切割開,否則返回只有一個(gè)元素的數(shù)組(即該字符串)

substr(n,m)用來(lái)截取一段字符串,n代表起始截取位置,m為截取長(zhǎng)度(可選)n為負(fù)數(shù)時(shí),傳入的負(fù)值與字符串長(zhǎng)度相加;m為負(fù)數(shù)時(shí),返回值為空字符串

數(shù)組對(duì)象的方法:(前四種為數(shù)組的棧方法)

pop()刪除數(shù)組最后一個(gè)元素,返回值為被刪除的元素;會(huì)改變?cè)瓉?lái)的數(shù)組(即在原數(shù)組上刪除最后一個(gè)元素)

push()給數(shù)組添加元素到最后,返回新數(shù)組長(zhǎng)度

shift()刪除數(shù)組第一個(gè)元素,返回值為被刪除的元素(字符串)

unshift()給數(shù)組添加元素到最前面,返回新數(shù)組的長(zhǎng)度

join()指定字符來(lái)分割數(shù)組(默認(rèn)用逗號(hào)隔開;用于把數(shù)組所有元素放入一個(gè)字符串,返回值為字符串,常用于數(shù)組轉(zhuǎn)字符串)

split()字符串轉(zhuǎn)數(shù)組

reverse()顛倒數(shù)組順序,返回新數(shù)組

sort()對(duì)數(shù)組元素進(jìn)行排序,返回新數(shù)組,該方法比較的是字符串,即使元素都是數(shù)值,eg:12,9,13排序?yàn)?2,13,9(先比較字符串首位)
可接收一個(gè)比較函數(shù)作為參數(shù),規(guī)定a-b為(升序)從小到大,b-a則為(降序)從大到小排列,eg:function mySort(a,b){return a-b;};console.log(arr11.sort(mySort));

concat()拼接數(shù)組返回對(duì)象,語(yǔ)法:arr.concat(arr1,arr2);

slice()截取數(shù)組中的一段數(shù)組,返回值是由截取的元素組成的數(shù)組,可以傳兩個(gè)值:(亦可傳一個(gè)值,如slice(0)截取全部)
第一個(gè)值代表開始截取位置的下標(biāo)值,第二個(gè)值為截取結(jié)束位置(不包括此位置的元素);若值為負(fù)數(shù)則從數(shù)組末尾開始截取,用數(shù)組長(zhǎng)度加上該負(fù)數(shù)以確定相應(yīng)的位置;

splice(n,m,k)用于刪除,添加或替換元素
n為刪除/添加數(shù)組元素的開始位置(若為添加時(shí),位置是指第n個(gè)元素的前面,所以一般插到后面時(shí)是n+1,返回值為空數(shù)組);
m為刪除的個(gè)數(shù),為零時(shí)不刪除元素;k為添加的元素,可添加多個(gè)(選填)

forEach(muFun(),m),可將數(shù)組元素傳遞給他的回調(diào)函數(shù),相當(dāng)于循環(huán)(muFun(item,index,arr)是回調(diào)函數(shù),m可選)
回調(diào)函數(shù)有三個(gè)參數(shù),第一代表數(shù)組元素,第二代表數(shù)組下標(biāo)值,第三代表數(shù)組本身,"批量處理",改變?cè)瓟?shù)組,無(wú)返回值

indexOf()用于查找數(shù)組里元素第一次出現(xiàn)的位置,返回值時(shí)Number,若未找到則返回-1;第一個(gè)參數(shù)代表要查找的元素,第二個(gè)參數(shù)代表從哪里開始查找(可選)

lastIndexOf()則從末尾開始查找第一個(gè)出現(xiàn)的某元素的位置

map()方法和forEach()方法一樣,但有返回處理后的新數(shù)組,不改變?cè)瓟?shù)組

filter()方法和forEach()方法傳入的參數(shù)一樣,篩選返回新數(shù)組,不改變?cè)瓟?shù)組,若無(wú)設(shè)置返回值缩多,則它的返回值為空數(shù)組

every()語(yǔ)法和foEach()方法一樣,every()的返回值為布爾值,只要有一個(gè)不符合條件就返回false

some()語(yǔ)法和foEach()方法一樣,some的返回值為布爾值,只要有一個(gè)符合條件就返回一個(gè)true

數(shù)字對(duì)象:

valueOf()

Math.abs()取絕對(duì)值

Math.round()四舍五入取整

Math.pow(x,y)返回x的y次方

Math.floor()向下取整,返回一個(gè)小于num的最大整數(shù)

Math.ceil()向上取整,返回一個(gè)大于num1的最小整數(shù)

Math.sqrt()開平方根,負(fù)數(shù)則返回NaN

Math.random()隨機(jī)數(shù),取值范圍0到1(不包含1)
=取一個(gè)范圍的隨機(jī)數(shù),Math.random()(最大值-最小值)+最小值;隨機(jī)生成n到m的整數(shù)var n,m;Math.floor(Math.random()(m-n+1)+n)

toExponential()數(shù)字轉(zhuǎn)為科學(xué)計(jì)數(shù)法

Math.PT即π,弧度 = 角度*(2π/360)
求數(shù)組中最小值min();最大值max();返回值均為Number,數(shù)組中只要有一個(gè)NaN即返回NaN

布爾對(duì)象:
valueOf()返回 Boolean 對(duì)象的原始值

日期對(duì)象:
new Date()返回當(dāng)前時(shí)間,傳參則會(huì)自動(dòng)轉(zhuǎn)換參數(shù)時(shí)間戳對(duì)應(yīng)日期,亦可傳最多7個(gè)參數(shù),對(duì)應(yīng)年月日等
(時(shí)間以1970年1月1日0點(diǎn)為基準(zhǔn),中國(guó)時(shí)區(qū)為8點(diǎn)) new前加"+"可轉(zhuǎn)換時(shí)間戳
new Date().toLocaleDateString()當(dāng)前當(dāng)?shù)貢r(shí)間字符串,格式"年/月/日"
getTime()至今的時(shí)間戳,相當(dāng)于日期前加"+"轉(zhuǎn)換

getFullYear()年
getMonth()月 0-11
getDate()日
getDay()星期 0-6
getHours()時(shí)
getMinutes()分
getSeconds()秒
getMilliseconds()毫秒

循環(huán)(遍歷):
1.while(當(dāng)循環(huán)) do...while(直到循環(huán))

2.for(遍歷數(shù)組盡量使用for代替forEach)  for...in(用于遍歷對(duì)象噪窘,不適合遍歷數(shù)組)

3.forEach(callback(value,index,arr){},this)為數(shù)組中含有效值的每一項(xiàng)執(zhí)行一次callback函數(shù)

標(biāo)準(zhǔn)的for循環(huán)中的i是number類型,表示的是數(shù)組的下標(biāo),但是foreach循環(huán)中的i表示的是數(shù)組的key是string類型案腺。

4.map((value,index,arr)=>{})返回新數(shù)組,不修改調(diào)用它的原數(shù)組本身询张,每個(gè)元素都是回調(diào)函數(shù)的結(jié)果 

5.reduce() 

6.filter() 

7.every()

8.some()

document.write("")向文檔輸出內(nèi)容,""中可輸出標(biāo)簽,多參數(shù)用逗號(hào)隔開

alert()警告框 / confirm()確認(rèn)框(返回布爾值) / prompt("","提示語(yǔ)")提示框(返回輸入值或默認(rèn)值/null)

console.log("")控制臺(tái)打印(console.clear()清空控制臺(tái)/cpnsole.warn()輸出警示/console.count()代碼被運(yùn)行次數(shù)/console.table()表格輸出...)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市浙炼,隨后出現(xiàn)的幾起案子份氧,更是在濱河造成了極大的恐慌,老刑警劉巖弯屈,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜗帜,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡资厉,警方通過(guò)查閱死者的電腦和手機(jī)厅缺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)宴偿,“玉大人湘捎,你說(shuō)我怎么就攤上這事≌酰” “怎么了窥妇?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)娩践。 經(jīng)常有香客問我活翩,道長(zhǎng)烹骨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任纱新,我火速辦了婚禮展氓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘脸爱。我一直安慰自己遇汞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布簿废。 她就那樣靜靜地躺著空入,像睡著了一般。 火紅的嫁衣襯著肌膚如雪族檬。 梳的紋絲不亂的頭發(fā)上歪赢,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音单料,去河邊找鬼埋凯。 笑死,一個(gè)胖子當(dāng)著我的面吹牛扫尖,可吹牛的內(nèi)容都是我干的白对。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼换怖,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼甩恼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起沉颂,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤条摸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后铸屉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钉蒲,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年抬探,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了子巾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡小压,死狀恐怖线梗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情怠益,我是刑警寧澤仪搔,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站蜻牢,受9級(jí)特大地震影響烤咧,放射性物質(zhì)發(fā)生泄漏偏陪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一煮嫌、第九天 我趴在偏房一處隱蔽的房頂上張望笛谦。 院中可真熱鬧,春花似錦昌阿、人聲如沸饥脑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)灶轰。三九已至,卻和暖如春刷钢,著一層夾襖步出監(jiān)牢的瞬間笋颤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工内地, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伴澄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓阱缓,卻偏偏與公主長(zhǎng)得像秉版,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子茬祷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

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