一 JS介紹

1.1 寫入位置

行內(nèi),內(nèi)部script標(biāo)簽內(nèi),外部js文件內(nèi)

1.2 輸入輸出語句

輸出語句

alert()

document.write()

console.log()

輸入語句

prompt()

二 變量

let var【被淘汰】

區(qū)分大小寫

三 常量

const

四 基礎(chǔ)數(shù)據(jù)類型

4.1 數(shù)字類型number

typeof

NaN 【not a number 】,不是一個數(shù)字,但是是數(shù)字類型

4.2 字符串類型string

模版字符串

使用反引號,${變量名}:console.log(`${name}今年${age}歲了`)

字符串截取:substring(idx1,idx2?),idx是索引,左閉右開,右可選

4.3 布爾類型boolean

4.5 未定義類型undefined

申明變量未賦值

4.6 空類型null

null賦值了,但是是空值,無,typeof返回object,但是它是基本數(shù)據(jù)類型,此時判斷是個bug,null通常是給對象賦值的

undefined未賦值

五 運(yùn)算符

5.1 算術(shù)運(yùn)算符

5.2 賦值運(yùn)算符

5.3 自增自減運(yùn)算符

5.4 比較運(yùn)算符

5.5 邏輯運(yùn)算符

5.5 運(yùn)算符優(yōu)先級

 六 類型轉(zhuǎn)換

6.1 顯示轉(zhuǎn)換

轉(zhuǎn)換為數(shù)字型

Number(數(shù)據(jù))

parseInt(數(shù)據(jù))

parseFloat(數(shù)據(jù))

注:特殊轉(zhuǎn)換:boolean:true ->1;false->0; null->0;undefined->NaN

轉(zhuǎn)換為字符型

String(數(shù)據(jù))

變量.toString(進(jìn)制)

轉(zhuǎn)化為布爾值

Boolean(數(shù)據(jù))

注:轉(zhuǎn)換為false:0,false,undefined,null,NaN,'', '  '

6.2 隱式轉(zhuǎn)換

轉(zhuǎn)換為數(shù)字

算術(shù)運(yùn)算符,比較運(yùn)算符,+號可以作為正號把字符串轉(zhuǎn)換為數(shù)字

轉(zhuǎn)換為字符串

+加號字符串拼接

轉(zhuǎn)換為布爾值

!邏輯非

七 語句

7.1 分支

if

三元運(yùn)算符

switch

斷點(diǎn)調(diào)試-chrome調(diào)試工具

7.2 循環(huán)

while循環(huán)

for循環(huán)

循環(huán)嵌套

八 數(shù)組

8.1 定義

數(shù)組屬于引用數(shù)據(jù)類型,單個變量下存儲多個數(shù)據(jù)

let 數(shù)組名= [數(shù)據(jù)1,數(shù)據(jù)2,。。。,數(shù)據(jù)n] 

8.2 數(shù)組的基本使用

數(shù)組取值: 數(shù)組名[索引]

遍歷:for

數(shù)組的長度:數(shù)組名.length

8.3 數(shù)組操作

查詢:數(shù)組名[索引],沒查到返回undefined

修改:數(shù)組名[索引],索引不存在會加一個數(shù),然后中間很多空索引

新增元素:

數(shù)組.push(數(shù)據(jù)),數(shù)據(jù)可以是多個,尾部添加

數(shù)組.unshift(數(shù)據(jù)),數(shù)據(jù)可以是多個,頭部添加

刪除元素:

數(shù)組.pop()

數(shù)組.shift()

數(shù)組.splice(開始位置索引,刪除幾個[可選不寫,全刪],[可選]新增1,[可選]新增2。。。),可以添加也可以刪除元素

數(shù)組排序

數(shù)組.sort(function(a,b){ return a-b}) 升序

數(shù)組分割

數(shù)組.join(分割符號), let arr=['a','b'] ,arr.join('')結(jié)果是ab,默認(rèn)是“,”分割

數(shù)組遍歷:

數(shù)組.forEach(function(item,index){}),function是回調(diào)函數(shù),item是數(shù)組每個元素,index是索引

數(shù)組.map(function(數(shù)組每一項(xiàng),數(shù)組索引){ return newEle}),遍歷數(shù)組,并且返回個新數(shù)組,拼接數(shù)組用map+join

 九 函數(shù)-function

函數(shù)是可以被重復(fù)使用的代碼塊,利于代碼復(fù)用

9.1 函數(shù)的基本使用

定義函數(shù): function 函數(shù)名(參數(shù)1,參數(shù)2.。。。){  return 結(jié)果}

調(diào)用函數(shù):函數(shù)名()

參數(shù):形參默認(rèn)值是undefined,實(shí)參多傳了不用,實(shí)際開發(fā)中盡量保持一致

9.2 邏輯中斷

false && anything  左側(cè)為真,返回右側(cè)。 true && 20 結(jié)果是20,不是Java中的boolean值

true || anything 左側(cè)為假,返回右側(cè)。false || 20 結(jié)果是20,不是Java中的boolean值

邏輯中斷解決默認(rèn)參數(shù)問題

function getSum(x,y){
x = x || 0
y = y || 0
return x+y
}

9.3 函數(shù)返回值

沒有return,默認(rèn)返回的是undefined;return 后面不能換行

9.4 作用域

如果函數(shù)內(nèi)部的變量沒有聲明,直接賦值,則是隱式全局變量,盡量不要這么用

9.5 變量的訪問原則

就近原則

9.6 匿名函數(shù)

function (){}

匿名使用方式:

函數(shù)表達(dá)式:將匿名函數(shù)賦值給一個變量,并且通過變量名稱進(jìn)行調(diào)用,我們將這個稱為函數(shù)表達(dá)式

let fn = function(){}

fn()

立即執(zhí)行函數(shù)(IIFE):(匿名函數(shù))();  (匿名函數(shù)());  分號不能少

創(chuàng)建函數(shù)的方式:函數(shù)表達(dá)式,函數(shù)申明

十 對象

10.1 對象

對象,object,包含屬性和方法

對象.屬性

對象.方法名()

let pig = {
uname:'xx',
sing: function(){}
}
pig.uname
pig.sing()

10.2 增刪查改

對象.屬性,對象['屬性名']

對象.屬性=新值

對象.新屬性=新值

delete 對象.屬性

10.3 遍歷對象

for in 循環(huán)

for( let 變量名 in 對象){

  對象['變量名']

}

10.4 內(nèi)置對象

document,console,Math

js math mdn