JavaScript數(shù)據(jù)類型
JavaScript擁有動(dòng)態(tài)類型,這意味著相同的變量可用作不同的類型
var x盛正;
var x = 5;
var x = "John";
JavaScript對(duì)象
對(duì)象由花括號(hào)分隔映屋。在括號(hào)內(nèi)部客峭,對(duì)象的屬性以名稱和值的形式(name: value)來定義逸月。屬性由逗號(hào)分隔;
var person = {firstname: "John", lastname:"Doe", id:5566};
Undefined和Null
JavaScript類型轉(zhuǎn)換
JavaScript5種不同數(shù)據(jù)類型:
. String
. number
. boolean
. object
. function
3種對(duì)象類型
. Object
. Date
. Array
2個(gè)不包含任何值得數(shù)據(jù)類型
Null undefined
- NaN的數(shù)據(jù)類型是number 數(shù)組的數(shù)據(jù)類型是object纪隙,日期的數(shù)據(jù)類型是object null的數(shù)據(jù)類型也是object赊豌, 未定義的變量數(shù)據(jù)類型是undefined。
constructor屬性
不能使用typeof判斷數(shù)組和日期的數(shù)據(jù)類型绵咱,但是constructor可以
- 跳過了正則表達(dá)式
變量提升
函數(shù)聲明和變量聲明總是會(huì)被解釋器悄悄地“提升”到方法體的最頂部碘饼。
- JavaScript只有聲明的變量會(huì)提升,初始化的不會(huì)悲伶。
程序作用域
在每個(gè)代碼塊中JavaScript不會(huì)創(chuàng)建一個(gè)新的作用域艾恼,一般各個(gè)代碼塊的作用域都是全局的
this的多種指向
- 在對(duì)象方法中,this指向調(diào)用它所在方法的對(duì)象
- 單獨(dú)使用this時(shí)麸锉,它指向全局對(duì)象
- 函數(shù)使用中钠绍,this指向函數(shù)的所有者
- 嚴(yán)格模式下函數(shù)沒有綁定到this上,這時(shí)this時(shí)undefined
- HTML事件句柄中花沉,this指向了接收事件的HTML元素
- apply和call允許切換函數(shù)執(zhí)行的上下文環(huán)境柳爽,即this綁定的對(duì)象媳握,可以將this引用到任何對(duì)象。
let和const
ES6新增的兩個(gè)重要關(guān)鍵字磷脯,let聲明的變量只有在let命令所在的代碼塊內(nèi)有效蛾找;const聲明一個(gè)只讀的常量,一旦聲明争拐,常量的值就不能改變腋粥。
在ES6之前,JavaScript只有兩種作用域:全局變量和函數(shù)內(nèi)的局部變量架曹。
- 使用var關(guān)鍵字聲明的變量不具備塊級(jí)作用域的特性,他在{}外依然能被訪問闹瞧。let關(guān)鍵字來實(shí)現(xiàn)塊級(jí)作用域
對(duì)比以下代碼
var i = 5;
for(var i = 0; i < 10; i++){
// to do
}
//這里輸出i為10
let i = 5;
for(let i = 0; i < 10; i++) {
// to do
}
// 這里輸出i為5
在JavaScript中绑雄,函數(shù)是對(duì)象,對(duì)象就有他的屬性和方法奥邮。arguments apply() call()
- 自調(diào)用函數(shù)
JavaScript閉包(內(nèi)嵌函數(shù))
此技巧是js為其沒有訪問修飾符而創(chuàng)建的“私有屬性”
JavaScript對(duì)象
JavaScript中所有事物都是對(duì)象:字符串,數(shù)值,數(shù)組,函數(shù)...,對(duì)象只是帶有屬性和方法的特殊數(shù)據(jù)類型
創(chuàng)建JavaScript對(duì)象(實(shí)例)
JavaScript是面向?qū)ο笳Z言,單JavaScript不使用類
JavaScript Number對(duì)象
JavaScript只有一種數(shù)字類型
NaN
創(chuàng)建一個(gè)數(shù)組
1:常規(guī)方式:
var myCars = new Array();
myCars[0] = "saab";
myCars[1] = "Volvo";
myCars[2] = "BMW";
2:簡潔方式:
var myCars = new Array("Saab","Volvo","BMW");
3:字面:
var myCars = ["Saab", "Volvo", "BMW"];
- 在一個(gè)數(shù)組中可以有不同的對(duì)象
JS瀏覽器BOM
window方法:
open() close() moveTo() resizeTo() availHeight() availWidth()
window.loacation.assign location.hostname location.pathname location.path location.protocol
window.history.back() window.history.forward()
Window Navigator
JavaScript彈窗 警告框 window.alert() 確認(rèn)框 window.confirm() 提示框:window.prompt()
JavaScript計(jì)時(shí)時(shí)間 setInterval() setTimeout() clearInterval() clearTimeout()
JavaScript框架(庫)
jQuery(最重要) Prototype MooTools