JavaScript是基于對(duì)象和事件驅(qū)動(dòng)的腳本語言,主要應(yīng)用在客戶端。
特點(diǎn):
1. 交互性(它可以做的就是信息的動(dòng)態(tài)交互)
2. 安全性(不允許直接訪問本地硬盤)
3. 跨平臺(tái)性(只要是可以解釋Js的瀏覽器都可以執(zhí)行,和平臺(tái)無關(guān))
JavaScript與Java不同
1. JS是Netscape公司的產(chǎn)品,前身是LiveScript;Java是Sun公司的產(chǎn)品,現(xiàn)在是Oracle公司的產(chǎn)品。
2. JS是基于對(duì)象,Java是面向?qū)ο蟆?p>3. JS只需解釋就可以執(zhí)行,Java需要先編譯成字節(jié)碼文件,再執(zhí)行。
4. JS是弱類型,Java是強(qiáng)類型。
JavaScript語法
每一種語言都有自己的語法規(guī)則,JS語法與Java很像,所以學(xué)習(xí)起來比較容易。JS中也一樣有變量,語句,函數(shù),數(shù)組等常見語言組成元素。
1. 變量
通過關(guān)鍵字var來定義,弱類型既是不用指定具體的數(shù)據(jù)類型。
例:var x = 3; x = “hello”;
注:JS中特殊的常量值:undefined,當(dāng)變量沒有初始化就被使用,該變量的值就是undefined(未定義)。
注意:Javascript的語句在結(jié)尾處是可以不用分號(hào)結(jié)束的,非嚴(yán)謹(jǐn)語言的特點(diǎn)。
但為了符合編程規(guī)范,需要象java一樣定義結(jié)束符。
而且有些情況是必須寫分號(hào)的,如:var x = 3 ; var y =5如果兩條語句寫在同一行,就需要分號(hào)隔開。
1)關(guān)鍵字:幾乎跟Java一樣
2)標(biāo)識(shí)符,分隔符:和Java一樣
3)注釋:用了Java當(dāng)中的這兩種: // 和 /* */
4)數(shù)據(jù)類型:number類型、string類型、boolean類型、undefined(當(dāng)變量聲明但沒有賦值)
5)變量:var (弱類型,類似于Java當(dāng)中的Object)
6)在js當(dāng)中,單引號(hào)和雙引號(hào)是一樣的,封裝的都是字符串(但同時(shí)有兩個(gè)引號(hào)封裝的,內(nèi)部的要用單引號(hào))
7)全局變量和局部變量
全局變量----只要不是函數(shù)內(nèi)部聲明的,都是。并且不會(huì)以大括號(hào)來區(qū)分,也不會(huì)以<script>來區(qū)分
a、只要不在函數(shù)內(nèi)部聲明,那么一個(gè)變量即使在導(dǎo)入的.js文件中聲明,在頁面腳本中同樣是有效的。
b、Java當(dāng)中的變量的作用域是以大括號(hào)來區(qū)分,而JS不是。
局部變量----函數(shù)內(nèi)部聲明的和形參
函數(shù)內(nèi)部的形參也是局部的,里面更改的值只能在內(nèi)部有效,函數(shù)返回之后就無效了
例:
<html> <head> <title>javascript語言學(xué)習(xí)</title> </head> <body> <script type="text/javascript"> //1 標(biāo)識(shí)符,關(guān)鍵字,分隔符---幾乎和Java一樣 //2 注釋:只支持 //單行 和 /*多行*/ //3 變量:弱類型 , 所有的變量都是用var來聲明---本質(zhì)上就是Java當(dāng)中的Object類型 var x=3; var y="abc"; //alert(x+","+y); x="xyz"; //alert(x); x=true;//js當(dāng)中的布爾類型和C一樣,有0 和 非0 的概念 x+=1; //alert(x); a=3.14;//因?yàn)闉g覽器有兼容性,所以一個(gè)變量不聲明類型也可以直接對(duì)期賦值(但不要去讀),因?yàn)槭侨躅愋?,都是var,寫不寫一樣 //alert(a); //alert(aa);//由于變量aa沒有聲明也沒有賦值,所以這里是出錯(cuò)的,沒有
2. 運(yùn)算符
Javascript中的運(yùn)算符和Java大致相同。
只是運(yùn)算過程中需要注意幾點(diǎn):
1, var x = 3120/1000*1000; x = 3120;而不是3000。
2, var x = 2.4+3.6 ; x = 6;而不是6.0
3, var x = “12” + 1; x = “121”; x = “12” – 1 ; x = 11;
加號(hào)對(duì)于字符串是連接符
4, && || 是邏輯運(yùn)算符 & |是位運(yùn)算符。
5, 也支持三元運(yùn)算符
6, 特殊運(yùn)算符 typeof : 返回一個(gè)操作表達(dá)式的數(shù)據(jù)類型的字符串。
var x = 3;
var y = “123”;
var z = false;
typeof(x); //number
typeof(y); //string
typeof(z); //boolean
例:
<html> <head> <title>javascript語言學(xué)習(xí)</title> </head> <body> <script type="text/javascript"> //5 運(yùn)算符:算術(shù)、賦值、比較、位運(yùn)算、三元運(yùn)算 //5.1算術(shù)運(yùn)算 var a=3710; //alert("a="+a/1000); //alert("a="+a/1000*1000); var b=2.3; var c=5.7; //alert(b+c);//8 //alert(11+23);//34 //alert("23"+11);//2311---string---加號(hào)為字符串連接 //alert("23"-11);//12 ---字符串遇到減號(hào),自動(dòng)會(huì)轉(zhuǎn)換成數(shù)值型進(jìn)行運(yùn)算 //alert(true);//true 和數(shù)值進(jìn)行運(yùn)算時(shí),true為1,flase為0 //alert(true+1);//2 //alert(false+1);//1 //alert(100%3);//1 //alert(100%-3);//1 //alert(-100%3);//-1 如果有負(fù)數(shù),結(jié)果和前面那個(gè)數(shù)同符號(hào)。---和Java是一樣的 //5.2 賦值運(yùn)算: = += -= *= /= %= var n=3,m; m=n++;//用法同Java //alert("m="+m+",n="+n);//m=3,n=4 var n=3,m;//和Java不同的是,變量可以重復(fù)聲明 m = ++n;//用法同Java //alert("m="+m+",n="+n);//m=4,n=4 var n; //alert(n);//4---這里沒有對(duì)該變量重新賦值,所以用的還是前面的那個(gè),不重新開內(nèi)存 var i=3; i +=3;//其它的如:-= *= /= %= ,同理 //alert("i="+i); //5.3 比較運(yùn)算符 var j=10; //alert( j>5 ); //其它如 :< >= <= == != 等,同理 //alert( j==10 ); //alert( j!=10 ); //5.4 邏輯運(yùn)算符 && || ! var k=4; //alert(k>3 && k<10); //true //alert( !(k>3) ); //false //alert( !k );//k是“非0”,再非一下則是flase---0 //5.5 位運(yùn)算符 & | ^ >> << >>>(無符號(hào)右移) ---和Java一樣 var c = 6; //6: 110 //3: 011 //alert( c&3 );// 010 --2 //alert(c^100^100); //c---6---一個(gè)數(shù)與兩個(gè)相同的數(shù)進(jìn)行異或運(yùn)算結(jié)果仍然等于原數(shù) //alert(c>>>1);//3 //5.6 三元運(yùn)算符---?號(hào)表達(dá)式 ----和java一樣 //alert(3>0?100:300); var xxyy; //alert(xxyy); //undefined---如果一個(gè)變量聲明之后沒有賦值,那么就是該值 alert(xxyy==undefined);//true ----這個(gè)undefined代表的是和true,false等一樣的,是一個(gè)值,因此不要用引號(hào) alert(xxyy=="undefined");//false </script> </body> </html>
3. 語句(與Java語句格式相同)
1. 判斷結(jié)構(gòu)(if語句)
注:var x = 3;
if(x==4)//可以進(jìn)行比較運(yùn)算。
if(x=4)//可以進(jìn)行賦值運(yùn)算,而且可以同樣進(jìn)行判斷。不報(bào)錯(cuò)。
因?yàn)樵贘s中0或者null就是false,
非0或者非null就是true(通常用1表示)。
所以if(x=4)結(jié)果是true;
可以通過if(4==y)來解決該問題。因?yàn)?=y不會(huì)進(jìn)行判斷,而是會(huì)報(bào)錯(cuò)。
2. 選擇結(jié)構(gòu)(switch語句)
與java不同的是:因?yàn)槿躅愋停部梢詫?duì)字符串進(jìn)行選擇。
3. 循環(huán)結(jié)構(gòu)(while語句,do…while語句,for語句)。
注:不同的是,沒有了具體數(shù)據(jù)類型的限制,使用時(shí)要注意。
例:
<html> <head> <title>javascript語言學(xué)習(xí)</title> </head> <body> <script type="text/javascript"> /* //if語句 var x=3; if (x>0){ alert("yes"); } else { alert("no"); } if (x-4) {//非0 即是 true,除了0以外的數(shù)都是非零的數(shù),即為true alert("yes2"); } else { alert("no2"); } if (x=4) {//一個(gè)“=”號(hào)是賦值,賦的值是4,該值同時(shí)也作為整個(gè)表達(dá)式的值---非0, 即是 true alert("yes3"); } else { alert("no3");//如果把上面的4改為0,則
九九乘法表例子:
<html> <head> <title>javascript語言學(xué)習(xí)</title> <link rel="stylesheet" href=table.css> </head> <body> <script type="text/javascript"> a:for (var x=0;x<3;x++){ for (var y=0;y<4;y++){ document.write("x="+x+" "); break a; } document.write("<br/>"); } </script> <hr/> <h2>九九乘法表</h2> <script type="text/javascript"> for (var x=1;x<=9;x++){ for (var y=1;y<=x;y++){ document.write(y+"*"+x+"="+x*y+" "); } document.write("<br/>"); } </script> <br/> <h2>九九乘法表</h2> <script type="text/javascript"> document.write("<table>"); for (var x=1;x<=9;x++){ document.write("<tr>"); for (var y=1;y<=x;y++){ document.write("<td>"+y+"*"+x+"="+x*y+"</td>"); } document.write("</tr>"); } document.write("</table>"); </script> </body> </html>
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com