標(biāo)識符
標(biāo)識符是指變量竖般、函數(shù)甚垦、屬性的名字,或者函數(shù)的參數(shù)(參數(shù):函數(shù)自變量)涣雕。
標(biāo)識符的書寫有幾個(gè)特征:
區(qū)分大小寫
第一個(gè)字符必須是字母艰亮、下劃線(_)、或者是$
后面的可以是字母挣郭、數(shù)字迄埃、下劃線、$
4.不能使用關(guān)鍵字兑障;
變量
什么是變量侄非?---變量是用來存儲數(shù)據(jù)的盒子蕉汪,使用關(guān)鍵字var來進(jìn)行聲明;注*--聲明會提前逞怨,但賦值不會提前者疤!
var a;//聲明變量
a=1;//給這個(gè)變量賦值;
a=1;//賦值
var a;//聲明
上面兩種寫法就是相同的叠赦;
console.log(a)//不報(bào)錯(cuò)宛渐,a為undefined
a=1;//賦值
var a;//聲明
上面這一種就是說的賦值不提前了;
js中的命名規(guī)約
使用是實(shí)際意義的單詞
變量使用駝峰規(guī)則眯搭,第一個(gè)單詞首字母小寫窥翩,后面單詞首字母大寫
變量使用名詞,方法函數(shù)使用動詞開頭鳞仙,常量全部用大寫字母(常量:只有一個(gè)值寇蚊,且不能改變---π,布爾true-false棍好,null仗岸,undefined),函數(shù)創(chuàng)建對象首字母大寫(構(gòu)造函數(shù))
數(shù)據(jù)類型
- 數(shù)字類型(number):整數(shù)和小數(shù)(比如1和3.14)
- 字符串類型(string):字符組成的文本(比如"Hello World")
- 布爾類型(boolean):true(真)和false(假)兩個(gè)特定值
- undefined:表示“未定義”或不存在借笙,即此處目前沒有任何值
- null:表示空缺扒怖,即此處應(yīng)該有一個(gè)值,但目前為空
- 對象(object):各種值組成的集合
其中數(shù)字類型业稼、字符串類型盗痒、布爾類型稱為原始類型的值,對象稱為合成類型得值低散,undefined和null則為兩個(gè)特殊類型的值俯邓!
*注:對于從頁面獲取的值都是以字符串類型返回到j(luò)s中;所以當(dāng)獲取的值是數(shù)字并且需要對它進(jìn)行操作時(shí)熔号,我們就需要對它進(jìn)行轉(zhuǎn)化---number()轉(zhuǎn)為數(shù)字類型稽鞭、parseInt()轉(zhuǎn)為整數(shù)型或parseFloat()浮點(diǎn)數(shù)型(小數(shù));
關(guān)于循環(huán)的問題
- continue用于結(jié)束本次循環(huán)引镊,不執(zhí)行條件內(nèi)的本次操作
for(var i=0;i<10;i++){
if(i==3||i==5){
continue;
}
console.log(i);//0,1,2,4,6,7,8,9
}
這樣就不會執(zhí)行滿足if條件的循環(huán)語句了
- break用于結(jié)束循環(huán)朦蕴,不執(zhí)行后面的語句
for(var i=0;i<10;i++){
if(i==5){
break;
}
console.log(i);//0,1,2,3,4
}
- 對于結(jié)束多重循環(huán),我們則需要給循環(huán)取個(gè)名字弟头,具體表明要結(jié)束的循環(huán)語句
outer:
for(var i=0;i<10;i++){
inter:
for(var j=0;j<10;j++){
if(i>5){
console.log(i);//6
break outer;
}
}
}
- for-in循環(huán)
for-in循環(huán)一般都是用于遍歷對象的屬性吩抓,從而達(dá)到我們想要的判斷條件,實(shí)現(xiàn)目的操作亮瓷!
var obj={
name:'jack',
age:18,
sex:'man'
}
for (var key in obj) {
if(key=='age'){
console.log(obj[key]);//18
}
}
函數(shù)
- 函數(shù)指的是包含多個(gè)執(zhí)行語句的代碼塊琴拧,可以通過function關(guān)鍵字來聲明一個(gè)函數(shù)或者用表達(dá)式的方式來創(chuàng)立函數(shù)
如:
function fn1(){
console.log(2);
}
var fn2=function(){
console.log(2)
}
- 函數(shù)的自變量--也叫變量,開始沒有賦值嘱支,當(dāng)函數(shù)調(diào)用的時(shí)候才進(jìn)行賦值蚓胸,也叫做函數(shù)的參數(shù)(也可以稱作形參)
function fn(x,y){
//x,y為函數(shù)fn的參數(shù)
console.log(x);
console.log(y);
}
fn(1,2);//后臺就打印1,2挣饥;這時(shí)x,y就分別代表1,2
- 給函數(shù)傳遞信息叫傳參,傳參時(shí)位置要一一對應(yīng)沛膳,沒有傳的參數(shù)則返回undefined扔枫;
- 函數(shù)的作用域
作用域:函數(shù)自變量生效的范圍
函數(shù)的作用域跟定義位置相關(guān),跟調(diào)用無關(guān)锹安!自變量查找是先從內(nèi)部查找短荐,如果沒有找到則再從外部查找!
在函數(shù)內(nèi)部,你可以使用arguments對象獲取到該函數(shù)的所有傳入?yún)?shù)
function printPersonInfo(name, age, sex){
console.log(name);
console.log(age);
console.log(sex);
console.log(arguments);
}
printPersonInfo('jack',16);//arguments.length=2
arguments對象是函數(shù)內(nèi)置的屬性叹哭,可以理解為類數(shù)組(類似數(shù)組忍宋,但不是數(shù)組),它的長度由函數(shù)的實(shí)參決定风罩,而不是形參糠排!
- 函數(shù)返回值
函數(shù)運(yùn)行結(jié)束會存在一定值,我們可以通過return語句返回我們想要的值超升,如果沒有return入宦,那么返回undefined!
function fn(a, b){
a++;
b++;
return a + b;
}
var result = fn(2, 3);
conslole.log(result);//7
這樣室琢,我們就可以通過一個(gè)變量來保存這個(gè)值乾闰,從而便于與我們對這個(gè)值進(jìn)行操作
對象--object
js中,對象具有唯一的標(biāo)識符盈滴,對象包括屬性和方法--屬性就是我們需要保存的信息涯肩,方法則是對象能提供的服務(wù);對象是某一個(gè)類的實(shí)例雹熬!
- 對象屬性的操作
1.對象(object)的屬性讀取有兩種方式:
(1)o.name;
(2)o['name'];//[]中可以傳入一個(gè)變量宽菜,可讀性更高;
2.操作時(shí)竿报,不賦值為取值,賦值為新的數(shù)據(jù)時(shí)為修改继谚,添加屬性名并賦值則是增加了這個(gè)屬性烈菌!
3.對于對象的刪除,我們可以使用關(guān)鍵字delete來進(jìn)行操作--delete object.name花履! - js中芽世,所有東西其實(shí)都是對象
- 空數(shù)組([])的類型也是object;null的類型也是object;
- 空數(shù)組([])和空對象({})對應(yīng)的布爾值诡壁,都是true济瓢。
if ([]) { console.log(true); } // true
if ({}) { console.log(true); } // true