javascript簡(jiǎn)介
javascript俗稱js,js的正式名稱是ECMAScript,是網(wǎng)景公司Netscape公司開發(fā)的一種基于客戶端瀏覽器、基于面向?qū)ο?、事件?qū)動(dòng)式的網(wǎng)頁腳本語言。主要用于:交互式操作,表單驗(yàn)證,網(wǎng)頁特效,web游戲,服務(wù)器腳本開發(fā)等;
特點(diǎn)
js是一種解釋性腳本編程語言
js是基于對(duì)象的腳本編程語言
- 簡(jiǎn)單性
- 安全性(不能訪問本地硬盤)
- 動(dòng)態(tài)性的
- 跨平臺(tái)性(依賴瀏覽器,與操作系統(tǒng)無關(guān))
三種使用方法
(1)使用onclick:屬性構(gòu)建執(zhí)行js代碼
<a href="#" onclick="alert(1)">點(diǎn)擊</a>
(2)使用<script../>標(biāo)簽來包含js代碼
<script type="text/javascript">
alert('Hello, world');
</script>
(3)導(dǎo)入外部的javascript文件,讓html頁面和js腳本分離
<script src="outer.js" type="text/javascript"></script>
####**`javascript`變量和數(shù)據(jù)類型**
`js`是弱類型腳本語言,使用變量之前,可以無需定義,當(dāng)使用某個(gè)變量的時(shí)候直接使用即可。主要分為以下兩種定義方式:
(1)隱式定義:直接給變量賦值(隱式變量聲明的時(shí)候必須賦初值)
` a = 10;`
(2)顯示定義:使用`var`關(guān)鍵字定義變量(使用之前必須賦初值,不然會(huì)報(bào)`undefined`錯(cuò)誤)
`var a = 10;`
**變量命名規(guī)則: **
- 首字母必須是字母、下劃線或者
$符號(hào)。
- 余下的字母可以是下劃線、
$、任意字母或數(shù)字。
- 變量名不能使用關(guān)鍵字
- 變量名對(duì)大小寫敏感。
js是弱類型腳本語言,聲明變量時(shí)無需指明變量的數(shù)據(jù)類型,js是解釋時(shí)動(dòng)態(tài)決定的,數(shù)據(jù)保存在內(nèi)存中時(shí)也是有數(shù)據(jù)類型的,常用數(shù)據(jù)類型如下:
- 數(shù)值類型(
number):包含整數(shù)和浮點(diǎn)數(shù)
- 布爾類型(
boolean):只有true或false兩個(gè)值
- 字符串類型(
string):字符串必須用單引號(hào)或雙引號(hào)括起來
- 對(duì)象類型(
object)
- 數(shù)組類型(
array)
- 未定義類型(
undefined):專門用來確定一個(gè)已經(jīng)創(chuàng)建但是沒有初值的變量
- 空類型(
null):用來表明某個(gè)變量的值為空
NaN:非數(shù)值型
注:undefined和null的值相等,類型不同。 兩個(gè)字符串是否相等,可用==來判斷。
**數(shù)據(jù)類型轉(zhuǎn)換: **
+號(hào)或者toString():數(shù)值number類型轉(zhuǎn)換成字符串
parseInt():將字符串轉(zhuǎn)為整型
parseFloat():將字符串轉(zhuǎn)換為浮點(diǎn)型
**注意: **
parseInt('67red') -> 67(字符串轉(zhuǎn)為整型的時(shí)候會(huì)自動(dòng)截取前面的數(shù)字,后面的忽略)
parseInt('red67') -> NaN(字符串前面沒有數(shù)字,會(huì)報(bào)not a number錯(cuò)誤)
字符串常用方法:
stringObject.charAt(index):獲取字符串特定索引處的字符
index:下標(biāo)(如果不在0~stringObject.length-1的范圍內(nèi),返回'')
返回值:string
stringObject.toUpperCase():將字符串的所有字符轉(zhuǎn)換成大寫字母
返回值:string
stringObject.toLowerCase():將字符串的所有字符轉(zhuǎn)換成小寫字母
返回值:string
stringObject.substring(start, end):提取字符串中介于兩個(gè)指定下標(biāo)之間的字符
start:必須,字符串中開始位置
end:非必需,字符串中結(jié)束位置,如果不指定,會(huì)一直到字符串的結(jié)尾
返回值:string
arrayObject.slice(start, end):提取字符串中介于兩個(gè)指定下標(biāo)之間的字符,可指定負(fù)數(shù)
start:必須,字符串中開始位置
end:非必需,字符串中結(jié)束位置,如果不指定,會(huì)一直到字符串的結(jié)尾
返回值:string
stringObject.indexOf(searchvalue,fromindex):返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置
searchvalue:必須,需要查找的字符串
fromindex:非必須,字符串的指定位置,如果不指定,會(huì)從字符串的開始位置開始查找
返回值:number
stringObject.replace(regexp/substr,replacement):將字符串中的某個(gè)子串以特定的字符串替換
regexp/substr:需要替換的字符串
replacement:替換字符串的值
返回值:string
stringObject.split(separator,limit):
separator必需,分隔符
limit 可選。該參數(shù)可指定返回的數(shù)組的最大長度,如果不指定,整個(gè)字符串都會(huì)被分割
返回值:string數(shù)組
stringObject.concat(str1, str2...):用于將多個(gè)字符串拼加成一個(gè)字符串
str1:字符串
返回值:string
**注意: **
- 用字符串做加法的時(shí)候,會(huì)做字符串拼接工作
- 用字符串做減法、乘法、除法的時(shí)候,會(huì)將字符串轉(zhuǎn)換成數(shù)值類型進(jìn)行減法、乘法、除法運(yùn)算
js數(shù)組
三種定義數(shù)組的方法:
(1)定義時(shí)直接給數(shù)組變量賦值
var arr = [1, 2, 3];
(2)定義一個(gè)空數(shù)組
var arr = [];
(3)用new方法定義數(shù)組
var arr = new Array();
特點(diǎn):
- 數(shù)組長度可變
- 同一數(shù)組中的元素類型可以互不相同
- 當(dāng)訪問未賦值的數(shù)組元素時(shí),該元素值為
undefined,不會(huì)數(shù)組越界
js里面沒有數(shù)組越界的概念,會(huì)顯示undefined
js運(yùn)算符
算術(shù)運(yùn)算符:+ - * / % ++ --
賦值運(yùn)算符:=
比較運(yùn)算符:> < >= <= == != === !==
邏輯運(yùn)算符:&& || !
位運(yùn)算符:& | ~ ^ << >>
其他運(yùn)算符:三目運(yùn)算符(?:)
void運(yùn)算符:強(qiáng)行指定某個(gè)表達(dá)式的不會(huì)返回值
typeof 運(yùn)算符:獲取某個(gè)變量的數(shù)據(jù)類型
instanceof運(yùn)算符:判斷某個(gè)變量的數(shù)據(jù)類型是否為指定的數(shù)據(jù)類型
var a = void 3; //輸出為undefined
document.write(typeof(str)); //輸出為string
alert(arr instanceof Array); //輸出為true
注意:js中沒有繼承的概念,所有的對(duì)象的父類都是object
js流程控制
js支持的分支語句主要有if和switch語句。
if(條件){
//表達(dá)式
}else{
//表達(dá)式
}
//注意:switch中表達(dá)式的值可以是number類型,也可以是string類型
switch(表達(dá)式){
case 值1: //表達(dá)式 break;
case 值1: //表達(dá)式 break;
...
default://表達(dá)式;
}
js支持的循環(huán)語句主要有while循環(huán),do-while循環(huán),for循環(huán),for-in循環(huán)
//先判斷,后執(zhí)行
while(循環(huán)條件){
//表達(dá)式
}
//先執(zhí)行,后判斷,至少執(zhí)行一次
do{
//表達(dá)式
}while(循環(huán)條件)
//當(dāng)循環(huán)次數(shù)確定的情況下,一般用for循環(huán),更簡(jiǎn)潔
for(表達(dá)式1; 表達(dá)式2; 表達(dá)式3){
//表達(dá)式
}
//可用于遍歷對(duì)象,比如數(shù)組(數(shù)組遍歷的是下標(biāo),對(duì)象遍歷的是屬性,注意:都不是具體的值)
for(變量 in 對(duì)象){
//表達(dá)式
}
//遍歷的是下標(biāo)
var arr = [1, 2, 3, 4, 5];
arr[5] = 10;
arr[10] = 11;
for(var a in arr){
document.write(arr[a]+'');
}
js提供了break和continue來改變循環(huán)的控制流
break:跳出該層循環(huán)
continue:結(jié)束該層循環(huán)的本次循環(huán)
常用的特殊語句
語句是js的基本執(zhí)行單元,每條語句都是以分號(hào)結(jié)束,語句了前面的賦值語句、算術(shù)運(yùn)算等語句之外,還有一些特殊語句。
|