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