JS笔记Javascript的基本介绍JS是用于WEB开发的脚本语言:脚本语言是什么:脚本语言往往不能独立使用,它和HTML/JSP/PHP/ASP.NET配合使用脚本语言也有自己的变量,函数,控制语句(顺序,分支,循环)脚本语言实际上是解释性语言(即在执行时直接对源码进行执行),编译性语言效率会更高一些Java程序.java→.class→jvm,js→浏览器(js引擎来解释执行)Js主要在客户端(浏览器)执行因为js是由浏览器来执行的,因此这里有个问题,不同类型的浏览器可能对js的支持不一样。开发工具的选择:记事本myeclipse!DOCTYPEHTMLPUBLIC-//W3C//DTDHTML4.01Transitional//EN=javascriptfunctiontest(){window.alert(helloworld!);}/scripttitleNewDocument/title/headbodyinputtype=buttononclick=test()value=点击一下吧//body/html案例:1需求:打开网页后,显示hello!htmlhead!--js代码是放在head标签间,但实际上也可以放在别的位置--scriptlanguage=javascriptwindow.alert(hello);/script/headbody/body/html问题:js的位置可以随意放js必须使用scriptlanguage=javascript代码/script在一个html文件中(JSP/PHP/ASP.NET)可以出现多对(script)片段,浏览器会按照先后顺序依次执行案例2:如何定义变量:如何运算:htmlheadtitleNewDocument/title/headbody!----js代码是放在head标签间,但实际上也可以放在别的位置--scriptlanguage=javascript//js中变量的定义(js中变量用var表示,无论什么类型)varnum1=1;varnum2=60;varresult=num1+num2;window.alert(结果是+result);//alert函数window.alert表示弹出一个对话框/script/body/htmlJs的变量类型是怎样决定的1)Js是弱数据类型语言,即:在定义变量时候,统一使用var表示,甚至可以去掉var这个关键字2)Js中的变量的数据是由js引擎决定的varname=”shunping”;//name是字符串varkk=2//kk是数字name=234;//这时name自动变成数Js的命名规范(函数/变量):1)使用大小写字母,数字,$可以命名2)不能以数字打头3)不能使用js保留字和关键字(即java里的关键字)4)区分大小写5)单行注释://6)多行注释:/*…….*/Js的数据类型:基本数据类型3种1数值类型特殊数值:1)NaN不是数字vara=”abc”window.alert(parseInt(a));2)Infinity无穷大window.alert(6/0);3)isNaN()如果是数字的话返回false4)isFinite()如果是无穷大返回false2.字符串类型可以用双引号也可以用单引号,单个字符也可以看成字符串,有特殊字符用\转义window.alert(asada\r);输出asada”r3.布尔类型truefalse通过typeof可以看到变量的具体数据类型举例:htmlheadscriptlanguage=javascriptvarnum1=123;varnum2=abcd;window.alert(num1是+typeofnum1);window.alert(num2是+typeofnum2);varnum1=false//体现js是动态语言:即数据类型可以任意变化window.alert(num1是+typeofnum1);//体现js是动态语言/script/headbody/body/html复合数据类型数组对象特殊数据类型Null即:vara=nullUndefine即:如下代码scriptlanguage=javascriptwindow.alert(tt);//直接报错:未定义vartt;//不报错未给值输出Undefine/scriptJs定义变量,初始化,赋值1)定义变量:即vara2)初始化:即在定义变量时就给值3)赋值:即:比如你先定义一个变量vartt,然后再给值:tt=780;js数据类型转换:1)自动转换例子:vara=123;//a是数值a=”hello”//a的类型是string2)强制转换例子:字符串转换成数字vara=123”;a=parseInt(a);//使用系统函数强制转换varb=90;//b是numberb=b+””,//b就是string运算符+—*/%%(取摸:即两个数相除的余数)强调:取模主要用于整数之间取模例子:编写一个程序,判断两个数是否能够整除scriptlanguage=javascriptvara=90;varb=8;if(a%b==0){window.alert(能整除);}else{window.alert(不能整除);}/script++,运算符a++--a=a+1b--=b=b-1++a表示先把自己加1再赋值--a表示先把自己减1再赋值例子:vara=56;varb=++a;window.alert(b);b=57window.alert(a);a=57--运算符vara=56;varb=--a;window.alert(b);b=55window.alert(a);a=55window.prompt();prompt()方法用于显示可提示用户进行输入的对话框。document.write():向浏览器输出内容varnum1=window.prompt(请输入一个数);//输入1.1varnum2=window.prompt(请再输入一个数);//输入1.1document.writeln(这两个数的和是+(num1+num2));//此时都当成字符串考虑,输出1.11.1document.writeln(这两个数的和是+(parseFloat(num1)+parseFloat(num2)));//此时输出2.2这个案例中不写parseFloat也是可以的逻辑运算符:(1)与&&If(逻辑表达式1&&逻辑表达式2){}如果逻辑表达式1为true则JS引擎会继续执行逻辑表达式2如果逻辑表达式1为false则不会执行逻辑表达式2(2)或||在JS中,||究竟返回什么值,这是一个非常重要的知识点结论:将返回第一个不为false的值(对象亦可),或者是返回最后一个值(如果全部都是false的话),返回的结果不一定是布尔值案例1:vara=true;varb=false;window.alert(a||b);输出true案例2:vara=4;varb=90;varc=a||b;window.alert(c);输出:4案例3:vara=0;varb=90;varc=a||b;window.alert(c);输出:90案例4:vara=0;varb=;vard=false;varc=a||b||d;window.alert(c);输出:false如果是varc=a||d||b;返回空串案例5:vara=0;varb=;varc=false;vard=newObject();vark=a||b||c||d;window.alert(k);输出类型是object(3)非!特别说明:在逻辑运算中:0,””,false,null,undefined,NaN均表示false除了这些均表示真的。vara=0;if(!a){window.alert(“OK”);}输出OKJS的位运算和移位运算,规范和java一致vara=42;结果是1vara=-42;结果是-1JS的控制语句:1)顺序控制对变成而言,不控制其流程就是顺序执行。2)分支控制2.1单分支If(条件表达式){语句;}2.2双分支If(条件表达式){}else{}2.3多分支If(条件表达式1){}elseif。。。(条件表达式2){}else{//else可有可无}案例:如果是男同志,上男厕所,女同志上女厕所,否则不上厕所varsex=window.prompt(请输入性别);if(sex==男){window.alert(上男厕所);}elseif(sex==女){window.alert(上女厕所);}else{window.alert(不上厕所);}注意:JS中字符串比较也要用==一旦找到了一个满足条件的入口,执行完毕后,就直接结束整个多分支switch语句:基本语法:switch(表达式){//执行语句;case常量1:break;//跳出整个switch。。。。。default:语句;break;}结论:1)JS的switch语句的常量数据类型可以是JS支持的任何类型(对象和数组除外)。2)case后面的值数据类型可以是任意的。3)break作用是跳出整个switch4)如果没有匹配的则执行defaultfor循环while循环dowhile循环案例:求1!+2!+3!+…….+n!varn=window.prompt(请输入一个数);sum=0;temp=1;for(vari=1;i=n;i++){for(varj=1;j=i;j++){temp=temp*j;}sum=sum+temp;temp=1;}document.writeln(sum);在ie8中,我们可以通过工具来对JS代码进行调试,尤其页面比较复杂的情况下非常有用。在ie8中,通过开发人员工具,就可以进行JS的调试工作。案例:打印出半个金字塔,整个金字塔,空心金字塔,菱形,空心菱形的代码见金字塔.html文件函数的学习:函数的基本概念:为完成某一个功能的代码(语句,指令)集合基本语法:Function函数名(参数列表){语句;//函数(方法)主体return返回值;}说明:1.参数列表:表示函数的输入特别强调:参数名前不要带var2.函数主体:表示为了实现某一功能代码块3.函数可以有返回值也可以没有入门案例:htmlheadscriptlanguage=javascripttype=text/javascript!--//输入两个数,再输入一个运算符,得到结果varnum1=window.prompt(请输入一个数);varnum2=window.prompt(请再输入一个数);num1=parseFloat(num1);num2=parseFloat(num2);varoperator=window.prompt(请输入一个运算符);varres=jiSuan(num1,num2,operator);document.write(结果是+res);//自定义函数functionjiSuan(num1,num2,operator){varres=0;if(operator==+){res=num1+num2;}elseif(operator==-){res=num1-num2;}elseif(operator==*){res=num1*num2;}else{res=num1/num2;}returnres;}--/script/headbody/body/html把上面的函数单独提出,然后在