JavaScript中所有的數(shù)據(jù)類型----數(shù)字類型、字符串類型、布爾類型。特殊值null和undefined。
注釋代碼
注釋代碼不被運(yùn)行也不會(huì)報(bào)錯(cuò),這是因?yàn)榻忉屍鲿?huì)自動(dòng)忽略這些注釋代碼.
定義變量添加var關(guān)鍵字的意義
我們使用var關(guān)鍵子定義一個(gè)局部變量,如果不加var關(guān)鍵字那么就是全局變量了.
變量定義標(biāo)準(zhǔn)的做法是變量以小寫字母開頭,通常除了第一個(gè)單詞外,其他單詞的首字母都大寫,就像是 priceOfProduct一樣。
undefined
返回undefined的理解
1,我們定義一個(gè)變量,返回undefined
var nik;
>> undefined
2,訪問未賦值的變量,返回undefined
nik;
>> undefined
3,我們定義一個(gè)函數(shù),返回undefined
function abc(x){
return x+10;
}
>> undefined
4,函數(shù)體沒有返回值,調(diào)用函數(shù)返回undefined
function abc(x){
x+5;
}
>> undefined
abc(12);
>> undefined
只要一條命令沒有返回一個(gè)值,JavaScript都會(huì)返回undefined作為響應(yīng).
- 訪問變量會(huì)返回一個(gè)值
var num =10;
>> undefined
num
>> 10
- 函數(shù)體有返回值,調(diào)用函數(shù)會(huì)返回一個(gè)值
function abc(x){
return x+5;
}
abc(2)
>> 7
- 對(duì)變量進(jìn)行運(yùn)算或賦值,會(huì)返回一個(gè)值
對(duì)變量的運(yùn)算或賦值操作的結(jié)果默認(rèn)就有一個(gè)return語(yǔ)句把運(yùn)算結(jié)果或賦值結(jié)果返回作為響應(yīng).
var num=10既有定義變量num,也有對(duì)num賦值,不過這種情況下認(rèn)為優(yōu)先認(rèn)為是定義一個(gè)變量,所以返回undefined.
var num=10;
>> undefined
num*2+100;
>> 120
num = 99
>> 99
自增自減的對(duì)象必須是變量
對(duì)變量的操作不會(huì)修改變量自身,除非將操作的結(jié)果賦值覆蓋原來變量
x= 3;
>> 3
x+1;
>> 4
x
>> 3
x= x+1;
>> 4
x
>> 4
自增自減操作直接修改變量自身
3++;
>> VM631:1 Uncaught ReferenceError: Invalid left-hand side expression in postfix operation
a=3
>> 3
a++
>> 3
a
>> 4
++a
>> 5
--a
>> 4
a
>> 4
字符串
和字符串連接,結(jié)果是兩個(gè)字符串的拼接
var num=10;
var string="10";
>> undefined
string+num;
>> "1010"
num+string;
>> "1010"
取出字符串中某個(gè)字符與取出數(shù)組元素的操作是一樣的
var string1="Mick";
var string2="High Nick";
string1[0]+string2[5]
>> "MN"
截取字符串slice
#截取0到2的字符
var string2="High Nick";
string2.slice(0,3)
>> "Hig"
#截取3到結(jié)束的字符
string2.slice(3)
>> "h Nick"
字符串大小寫轉(zhuǎn)換
"Hello World!".toUpperCase();
>> "HELLO WORLD!"
"Hello World!".toLowerCase();
>> "hello world!"
一個(gè)標(biāo)準(zhǔn)的英語(yǔ)句子,應(yīng)該是首字母大寫,其他字母小寫。如何把任意一個(gè)句子轉(zhuǎn)換成標(biāo)準(zhǔn)形式?
string="iM going to SCHOOL,it's going be late";
a=string[0].toUpperCase();
b=string.slice(1).toLowerCase();
a+b;
>> "Im going to school,it's going be late"
布爾值
- 定義布爾值直接寫true或false,添加上引號(hào)則是字符串
a=true;
typeof(a)
>> "boolean"
b="true";
typeof(b)
>> "string"
- 布爾值可以用于運(yùn)算
在運(yùn)算表達(dá)式中true轉(zhuǎn)為數(shù)字1進(jìn)行運(yùn)算,false轉(zhuǎn)為數(shù)字0進(jìn)行運(yùn)算
a=true;
num=3;
num+a*2+a*3;
>> 8
a=false;
num=3;
num+a*2+a*3;
>> 3
true>44
>> false
true+45>44
>> true
false+44>=44
>> true
等于
兩個(gè)等于號(hào)只要值相等,類型不做限制,結(jié)果就為true
三個(gè)等于號(hào)要求值和類型都必須相同,結(jié)果才返回true
3==3
>> true
3===3
>> true
3=="3"
>> true
3==="3"
>> false
布爾值和數(shù)字做比較時(shí)是以0或1的值進(jìn)行比較,==只要值相等就返回true,而===則是false因?yàn)椴紶栔殿愋团c數(shù)字類型不同
"s"==true
>> false
0==false
>> true
0===false
>> false
1==true
>> true
布爾值進(jìn)行比較時(shí)是轉(zhuǎn)換為數(shù)值0或1進(jìn)行比較的
"false"==false
>> false
"false"===false
>> false
"true"==true
>> false
布爾值和字符串的值都可以是數(shù)值0或1,類型不同值相同,==就返回true
true=="1"
>> true
false=="0"
>> true
false=="1"
>> false
true=="2"
>> false
undefined和null
JavaScript使用undefined表示沒有值或者沒有返回值。例如我們創(chuàng)建了一個(gè)新的變量卻沒有使用=操作符為它賦值,那么該變量的值就是undefined。調(diào)用一個(gè)沒有return值的函數(shù)也是返回undefined。
當(dāng)我們想要刻意表達(dá)“這是空的”時(shí),通常使用null。
var a=undefined;
var b=null;
>> undefined
a
>> undefined
b
>> null
a=3;
>> 3
b=4
>> 4
使用undefined和null的場(chǎng)景模擬:
以來到服裝店為例,如果把變量設(shè)置為null,就代表你沒有要買的衣服。如果把變量設(shè)置為undefined,就代表你暫時(shí)還沒挑到要買的衣服,后面挑到合適的就買了。