JavaScript中所有的數(shù)據(jù)類型----數(shù)字類型议双、字符串類型、布爾類型捉片。特殊值null和undefined平痰。
注釋代碼
注釋代碼不被運行也不會報錯,這是因為解釋器會自動忽略這些注釋代碼.
定義變量添加var關(guān)鍵字的意義
我們使用var關(guān)鍵子定義一個局部變量,如果不加var關(guān)鍵字那么就是全局變量了.
變量定義標(biāo)準(zhǔn)的做法是變量以小寫字母開頭,通常除了第一個單詞外,其他單詞的首字母都大寫,就像是 priceOfProduct一樣。
undefined
返回undefined的理解
1,我們定義一個變量,返回undefined
var nik;
>> undefined
2,訪問未賦值的變量,返回undefined
nik;
>> undefined
3,我們定義一個函數(shù),返回undefined
function abc(x){
return x+10;
}
>> undefined
4,函數(shù)體沒有返回值,調(diào)用函數(shù)返回undefined
function abc(x){
x+5;
}
>> undefined
abc(12);
>> undefined
只要一條命令沒有返回一個值,JavaScript都會返回undefined作為響應(yīng).
- 訪問變量會返回一個值
var num =10;
>> undefined
num
>> 10
- 函數(shù)體有返回值,調(diào)用函數(shù)會返回一個值
function abc(x){
return x+5;
}
abc(2)
>> 7
- 對變量進行運算或賦值,會返回一個值
對變量的運算或賦值操作的結(jié)果默認(rèn)就有一個return語句把運算結(jié)果或賦值結(jié)果返回作為響應(yīng).
var num=10既有定義變量num,也有對num賦值,不過這種情況下認(rèn)為優(yōu)先認(rèn)為是定義一個變量,所以返回undefined.
var num=10;
>> undefined
num*2+100;
>> 120
num = 99
>> 99
自增自減的對象必須是變量
對變量的操作不會修改變量自身,除非將操作的結(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é)果是兩個字符串的拼接
var num=10;
var string="10";
>> undefined
string+num;
>> "1010"
num+string;
>> "1010"
取出字符串中某個字符與取出數(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!"
一個標(biāo)準(zhǔn)的英語句子伍纫,應(yīng)該是首字母大寫觉增,其他字母小寫。如何把任意一個句子轉(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,添加上引號則是字符串
a=true;
typeof(a)
>> "boolean"
b="true";
typeof(b)
>> "string"
- 布爾值可以用于運算
在運算表達式中true轉(zhuǎn)為數(shù)字1進行運算说铃,false轉(zhuǎn)為數(shù)字0進行運算
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
等于
兩個等于號只要值相等访惜,類型不做限制,結(jié)果就為true
三個等于號要求值和類型都必須相同腻扇,結(jié)果才返回true
3==3
>> true
3===3
>> true
3=="3"
>> true
3==="3"
>> false
布爾值和數(shù)字做比較時是以0或1的值進行比較债热,==只要值相等就返回true,而===則是false因為布爾值類型與數(shù)字類型不同
"s"==true
>> false
0==false
>> true
0===false
>> false
1==true
>> true
布爾值進行比較時是轉(zhuǎn)換為數(shù)值0或1進行比較的
"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)建了一個新的變量卻沒有使用=操作符為它賦值舶沿,那么該變量的值就是undefined墙杯。調(diào)用一個沒有return值的函數(shù)也是返回undefined。
當(dāng)我們想要刻意表達“這是空的”時括荡,通常使用null高镐。
var a=undefined;
var b=null;
>> undefined
a
>> undefined
b
>> null
a=3;
>> 3
b=4
>> 4
使用undefined和null的場景模擬:
以來到服裝店為例,如果把變量設(shè)置為null畸冲,就代表你沒有要買的衣服嫉髓。如果把變量設(shè)置為undefined,就代表你暫時還沒挑到要買的衣服邑闲,后面挑到合適的就買了算行。