以前沒(méi)徹徹底底的看過(guò)js相關(guān)的學(xué)習(xí)資料,覺(jué)得很有必要再看看基礎(chǔ)的東西。一起來(lái)學(xué)習(xí)。
1 , javascript字符集:
javascript
采用的是
Unicode
字符集編碼。
為什么要采用這個(gè)編碼呢?
原因很簡(jiǎn)單,
16
位的
Unicode
編碼可以表示地球人的任何書(shū)面語(yǔ)言。這是語(yǔ)言
國(guó)際化的一個(gè)重要特征。
(
大家也許見(jiàn)過(guò)用中文寫腳本,比如:
function
我的函數(shù)
() {}? );
Javascript
中每個(gè)字符都是用
2
個(gè)字節(jié)表示的。(因?yàn)槭?/span>
16
位編碼)
?
?
2 ,
大小寫敏感:
js
是一種區(qū)分大小寫的語(yǔ)言。
注意下:以前我也犯過(guò)的錯(cuò)誤。
HTML
是不區(qū)分大小寫的。經(jīng)常看見(jiàn)有人這么寫
,
<input type=”button” onClick=”a()” />
(這樣寫是對(duì)的)
如果放到
JS
中,就必須使用
onclick
(小寫哦!)
同時(shí)
XHTML
中也只能使用小寫。
這個(gè)我們并不需要太關(guān)心,象這種問(wèn)題,其實(shí)都可以自己給自己定一個(gè)標(biāo)準(zhǔn),自己寫程序的時(shí)候全部小寫。
另外每行程序后
分號(hào)
也是一樣,我們都寫上。
?
3 ,
注釋:
單行:
//??
注釋
1
/*??
注釋
2? */?
多行:
/*?
注釋
3
*?
注釋
3
*?
注釋
3
*/
?
4 ,
標(biāo)識(shí)符:
標(biāo)識(shí)符就是一個(gè)名字,用來(lái)命名變量和函數(shù)。
規(guī)則:第一個(gè)字母必須是字母,下劃線
(_)
,或美圓符號(hào)
($)
。
為什么第一個(gè)字母不能為數(shù)字?
如果第一個(gè)為數(shù)字,
js
很容易就把它當(dāng)作數(shù)字處理了,那么命名就沒(méi)意義了,
js
規(guī)定了后,就很容易的區(qū)分了標(biāo)識(shí)符和數(shù)字了。
?
5 ,
直接量:
就是程序中直接顯示出來(lái)的數(shù)據(jù)值。
比如:
12? , 1.2? , “ hello “ , true ,? null? , [1,2,3,4]
這些都是直接量。
?
6 ,
保留字和關(guān)鍵字:
具體是哪些,可以去
google.cn
。
其實(shí)我們只要不取一些特郁悶的名字,都不會(huì)沖突的。
?
7 ,js
數(shù)據(jù)類型:
3
種基本的類型;數(shù)字,字符串和布爾值。
2
種小數(shù)據(jù)類型:
null
和
undefined . (
為什么叫小數(shù)據(jù)類型?因?yàn)樗麄冎欢x了一個(gè)值
)
1
種復(fù)合類型:
object. (
在這個(gè)類型中,它的值可以是基本數(shù)據(jù)類型,也可以是復(fù)合類型,比如其他的
object. )
注意:在對(duì)象中有一個(gè)特殊的對(duì)象
----function.(
它是一個(gè)可以執(zhí)行代碼的對(duì)象
.)
?
其他的一些對(duì)象
:
數(shù)組:
Date
類
:
是日期的對(duì)象。
RegExp
類:
正則表達(dá)式的對(duì)象。
Error
類:
js
中發(fā)生錯(cuò)誤的對(duì)象。
?
8 ,
使用數(shù)據(jù)類型注意的地方:
1):
數(shù)字:
由于數(shù)字有什么
8
進(jìn)制,
10
進(jìn)制,
16
進(jìn)制等。。。
八進(jìn)制:
var num = 011; //
以
"0"
開(kāi)頭
十六進(jìn)制:
var num =0x1f; //
以
"0x"
開(kāi)頭
所以對(duì)于
js
這個(gè)都能識(shí)別的語(yǔ)言來(lái)說(shuō),就必須得注意。
alert(377);?? // 377
alert(0377);??? //255?? =? 3 * 64 + 7 * 8? + 7 * 1
?
進(jìn)行算術(shù)運(yùn)算有個(gè)重要的對(duì)象:
Math.
具體可以去網(wǎng)上下載手冊(cè),查詢里面的方法。
?
2
個(gè)有用的函數(shù):
isNaN()
和
isFinite()
isNaN() :
用于檢查其參數(shù)是否是非數(shù)字值。
//
提示:是非數(shù)字哦。
(not a number)
document.write(
isNaN
(0) )? //
返回
false
document.write(
isNaN
(5-2) ) //
返回
false
document.write(
isNaN
("Hello") ) //
返回
true
?
isFinite(number)
函數(shù)用于檢查其參數(shù)是否是無(wú)窮大。
如果
number
是有限的,則返回
true.
如果
number
是
NaN(
非數(shù)字
)
或者是無(wú)窮大,則返回
false;
?
2):
字符:
‘you’re right’;
這樣寫的話
js
會(huì)誤以為
在
you
字母后就結(jié)束了,引起錯(cuò)誤。
所以當(dāng)遇到這種情況的時(shí)候,必須用到轉(zhuǎn)義。
我們可以這么寫:
‘you\’re right’;
另外:你可以
google.com
搜索
轉(zhuǎn)義序列表
。
?
字符串的簡(jiǎn)單操作例子:
var a = "cssrain";
var b = a.charAt(a.length-1); //
從字符串
a
中截取最后一個(gè)字符。
?
輸出:
n
var c = a.substring(0 , 2);? //
從字符串
a
中截取第
1
,
2
個(gè)字符。
輸出:
cs
var d = a.indexOf('s');?? //
從字符串
a
中查找
第一個(gè)
s
出現(xiàn)的位置。
輸出:
1??
從例子可以看出,基數(shù)都是從
0
開(kāi)始的。
var e = a.substring( a.length-1 ); //
可以看出,
substring
第
2
個(gè)參數(shù)不寫的話,
//
默認(rèn)
是到最后。
var f = a.substring( a.length-1 , a.length);//
等價(jià)于
?
3):
數(shù)字跟字符之間的轉(zhuǎn)換:
數(shù)字轉(zhuǎn)字符:
var number_to_string = number + “ ”; //
方法
1
:添加一個(gè)空的字符串。
var number_to_string =String(number); //
方法
2
:使用
String()
函數(shù)。
var number_to_string =number. toString(); //
方法
3
:使用
toString()
函數(shù)。
注:
toString()
方法默認(rèn)是以
10
進(jìn)制轉(zhuǎn)換。
如果要使用
8
進(jìn)制轉(zhuǎn)換可以
這么寫:
number. toString(8);
?
字符轉(zhuǎn)數(shù)字:
var string_to_number = string – 0 ; //
方法
1
:
字符串減去
0
。
var string_to_number = Number(string) ; //
方法
2
:使用
Number ()
函數(shù)。
var string_to_number = parseInt(string) ; //
方法
3
:使用
parseInt ()
函數(shù)。
方法
1
中不能
用
string+0 ;
這樣會(huì)導(dǎo)致字符串拼接,而不是類型轉(zhuǎn)換。
方法
2
中的
Number
函數(shù)轉(zhuǎn)換,比較嚴(yán)格。
比如:
var a = "19cssrain86";
var b = Number(a);? //
輸出
NaN.
如果我們使用方法
3
。
var c = parseInt(a); //
輸出
19
可以看出
parseInt()
會(huì)自動(dòng)忽略非數(shù)字的部分。
parseInt()
只取整數(shù)部分,忽略小數(shù)部分。
parseFloat()
會(huì)把小數(shù)部分也取到。
和
toString()
一樣,
parseInt
也有進(jìn)制,默認(rèn)是
10
進(jìn)制。
如果想使用
8
進(jìn)制,可以這么寫:
parseInt( “077” , 8 ); //
輸出
63 = 7 * 8 + 7
當(dāng)字符以
0
開(kāi)頭的時(shí)候,我們必須把
第二個(gè)參數(shù)
指明,不然
js
可能會(huì)以
8
進(jìn)制去轉(zhuǎn)換。
?
4):
布爾類型:
布爾在數(shù)字環(huán)境中:
true?
轉(zhuǎn)換為
? 1?
,
false?
轉(zhuǎn)換為
? 0?
。
在字符環(huán)境中:
true?
轉(zhuǎn)換為
? “true”?
,
false?
轉(zhuǎn)換為
? “false”?
。
布爾轉(zhuǎn)換:
var x_to_Boolean = Boolean(x); //
方法
1
:使用
Boolean ()
函數(shù)。
var x_to_Boolean = !x; //
方法
2
:使用
感嘆號(hào)。
?
5):
函數(shù)的定義:
方法
1
:普通定義
function square(x){
????? return x*x;
}
方法
2
:函數(shù)直接量定義
var square = function(x){? return x*x; }?? //
推薦使用
方法
3
:構(gòu)造參數(shù)
var square = new Function(“x”,”return x*x;”);?? //
效率低
?
6):
對(duì)象:
如果有一個(gè)名為
cssrain
的對(duì)象
,
他有一個(gè)高度
height
的屬性。
那么我們可以這么引用:
cssrain.height;
還可以使用關(guān)聯(lián)數(shù)組定義:
cssrain[“height”];
?
創(chuàng)建對(duì)象:
方法
1
:
var point = new Object();
point.x = 3;
point.y = 5;
方法
2
:使用對(duì)象直接量
var point = {x:3 , y:5 }
當(dāng)然
json
也可以咯。
?
對(duì)象在字符的環(huán)境下,會(huì)調(diào)用
toString()
方法。
數(shù)字環(huán)境下,會(huì)調(diào)用
valueOf()
方法。
布爾環(huán)境下,非空對(duì)象為
true;
?
7):
數(shù)組:
常規(guī)數(shù)組:以非負(fù)整數(shù)做為下標(biāo)。
image[0]
關(guān)聯(lián)數(shù)組:以字符做為下標(biāo)。如:
image[“width”]
js
不支持多維數(shù)組,但數(shù)組里面可以嵌套數(shù)組。
?
創(chuàng)建數(shù)組:
方法
1
:
var a = new Array();
a[0] = “1”;
a[1] = 2;
a[2] = { x:1, y:3};
方法
2
:
var? a? =? new Array(“1” , 2 , {x:1,y:3} );
注意下:如果只傳了一個(gè)參數(shù);比如
var a = new Array(3);
那么它是表示:
3
個(gè)未定義元素
的
新數(shù)組。
方法
3
:使用數(shù)組直接量
var? a =[“1” ,? 2 , {x:1 , y :3 }]; //
注意外面的
括號(hào)
?
,
?
不是花
括號(hào)。
?
8):null
和
undefined
:
null
表示無(wú)值;
undefined :
使用一個(gè)并未聲明的變量,或者使用了已經(jīng)聲明的變量但未賦值或者使用了一個(gè)并不存在的屬性。
undefined==null
如果要區(qū)分:
可以使用
===?
或者
typeof
運(yùn)算符。
?
9 ,
新手常遇到的疑惑:
var s =”you are right”;
var b = s.substring(s.lastIndexOf(“ ”)-1 , s.length);
疑惑:
s
是對(duì)象還是字符串,為什么字符串會(huì)有方法呢?
回答:
s
是字符串。之所以有方法
,是因?yàn)?/span>
string
類型
有一個(gè)相應(yīng)的對(duì)象類(
String
)。
同樣數(shù)字和布爾都有相應(yīng)的
Number , Boolean
類。
Js
會(huì)內(nèi)部進(jìn)行相應(yīng)的包裝對(duì)象。
String
對(duì)象就替換了原始的字符串。
?
總結(jié):
簡(jiǎn)單了介紹了
js
中的一些概念(詞法結(jié)構(gòu))
和
數(shù)據(jù)類型(部分)。
?
好了,今天就說(shuō)到這里,
明天我們
繼續(xù)。
^_^
。
ps:該文檔來(lái)源互聯(lián)網(wǎng)
posted on 2008-10-09 16:00
JasonChou 閱讀(287)
評(píng)論(0) 編輯 收藏 所屬分類:
html