ホームページ  >  記事  >  ウェブフロントエンド  >  Javascript_1_構文

Javascript_1_構文

黄舟
黄舟オリジナル
2017-01-18 16:21:34975ブラウズ

Javascript_1_Grammar

<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
    <title>javascript演示1</title>
	</head>
	<body>
    <h1>javascript演示1</h1>
    javascript是基于对象和事件驱动的,用于客户端
    具有交互性、安全性(不允许访问本地硬盘)、跨平台性
    只需要解释就能执行,javascript是弱类型语言
    javascript与Html结合方式有两种:
    在body中,直接将代码放到script标签里面即可
    例如:
    <script type="text/javascript">
    	alert("hello world");
    </script>
    另外一种结合方式:
    当多个页面使用同一个javascript脚本的时候,
    可以将javascript脚本封装成一个后缀名为.js文件
    仍然是通过src标签,但用的是src属性引入该js脚本文件路径
    例如:
    <script type="text/javascript" src="a.js">
    	alert("hello world!!!!");//在已有src属性的script中,该js代码不会被执行!
    </script>
    值得注意的是:如果标签script中已经使用了src属性链接一个js脚本文本,
    那么,在该script标签代码块内的js代码,将不会被执行!
    
    因此:导入外部的js脚本文件时候,通常用单独的标签script封装!
    Displays an alert dialogue box.
    Supported Platforms
    Mozilla: 1.0+, Chrome: 5.0+, Netscape: 2.0+, Safari: 1.0+, Opera: 7.0+, IE: 3.0+
    Specification
    javascript 1.0
    所有的语言与html结合都是以标签的形式,比如Java用.....(这个还没学到)
    javascript关键字:
    <!--
    	Javascript关键字(Reserved Words)是指在Javascript语言中有特定含义,
    	成为Javascript语法中一部分的那些字。
    	Javascript关键字是不能作为变量名和函数名使用的。
    	使用Javascript关键字作为变量名或函数名,
    	会使Javascript在载入过程中出现编译错误。  
Javascript关键字列表:  
break delete function return typeof  
case do if switch var  
catch else in this void  
continue false instanceof throw while  
debugger finally new true with  
default for null try    

Javascript未来关键字(Javascript Future Reserved Words)  
Javascript还有一些未来关键字,这些字虽然现在没有用到Javascript语言中,
但是将来有可能用到。  

Javascript未来关键字列表:  
abstract double goto native static  
boolean enum implements package super  
byte export import private synchronized  
char extends int protected throws  
class final interface public transient  
const float long short volatile  
    	-->
    	javascript标识符:
    	标识符指的是javascript中定义的符号,
    	标识符可以由任意顺序的大小写字母、数字、下划线和美元符号组成,
    	但标识符不能以数字开头,也不能是javascript中的保留关键字。
    	并且要注意,javascript是严格区分大小写的。
    	<script type="text/javascript">
        var x=3;
        var X;
        alert("x="+x);//x=3
        alert("X="+X);//提示undefined,未初始化
        alert("Y="+Y);//因为Y没有定义过,所以无任何反应!
    	</script>
javascript是严格区分大小写的。
1、放置在<script></script>标签对之间
      标签对位置并不是固定的,可以出现在网页中的任何地方。
      在一个HTML文档可以有多个这样的标签对来嵌入多段javascript代码,
      每段代码可以相互访问,这同将所有的代码放在
      一对<script></script>中的效果是一样的。
2、将javascript代码放置在一个独立的js文件中
      使用<script src="js文件的url" type="text/javascript"></script>
      将所需要的文件引入到网页中。
3、将脚本程序代码作为属性值
      <a>标签的href属性除了可以使用http和mailto协议外,
      	还可以使用javascript协议,如:
       当单击这个超链接,IE将会执行javascript:后面的脚本程序代码。
       javascript扩展了标准的HTML,为HTML标签增加了各种事件属性,
       如button表单可以设置一个onclick属性,
       该属性值就可以设置为一段javascript程序代码,
       当单击这个按钮后,onclick属性值中的javascript代码就会被IE解释执行。
      <input type="button" value="test" onclick="alert(new Date());" />
      用作URL的javascript代码前要增加javascript:,说明使用的是javascript协议,
      但在事件属性中javascript程序代码前不需要增加javascrip:进行说明。
      <hr />
      在javascript里面,单引和双引都是字符串类型!
      而且单引和双引可以相互嵌套!
      <script type="text/javascript">
      	var a=3;//number
      	a="abc";//string
      	a=3.14159;//number
      	a=true;//boolean
      	a=&#39;c&#39;;//string
      	a=&#39;9&#39;;//string
      	var b=2467;
      	alert(b/1000*1000);
      	//结果仍然为2467!注意小心要与JAVA的区别!
      	var c=2.4+1.6;
      	alert(c);//结果为整数:4  注意小心要与JAVA的区别!
      	//加号对于字符串是连接符号!切记!
      	
      </script>
	</body>
</html>


2

<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
    <title>javascript演示2</title>
	</head>
	<body>
    <h1>javascript演示2</h1>
    <script type="text/javascript">
    	var a="12"+3;
        alert(a);//结果为整数:123  注意!
        //加号对于 字符串 是连接!
    	var b="12"-3;
        alert(b);//结果为整数:9  注意减号可以正常运算!
        //在js中false 就是0或者空(null)
        //任何其实非0非空(null)的都是true,true默认值是1
        alert(true+10);//11
        alert(false+10);//10
        var c=3;
        var d=c++;
        alert(c);//4
        alert(d);//3
        //在js中,单或和单与是位运算,返回值是数字
        //只有&&和||返回真、假
        var e=4;
        alert(e>3&&e<9);//true
        alert(e>6&&e<9);//false
        alert(e>3&e<9);//1
        alert(e>6&e<9);//0
        alert(!e);//false
        var f=6;
        alert(f&3);//2
        alert(5^3^3);//5
        alert(6<<1);//12
        alert(6>>1);//3
        //三目运算符
        3>2?alert("yes"):alert("no");//yes
        alert(3>2?100:50);//100
    </script>
	</body>
</html>


<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
    <title>javascript演示3</title>
    </head>
    <body>
    <h1>javascript演示3</h1>
    <script type="text/javascript" src="a.js">    </script>
    <script type="text/javascript" >
        println("a.js文件自定义了打印函数println");
        var a;
        println(a);    //undefined
        println(a==undefined);//true
        var b=4;
        println(b==undefined);//false
        /*
         * 因此,undefined含义是:未定义,其实是个常量!
         */
        println(typeof(2.5));//number
        println(typeof(true));//boolean
        println(typeof("abc"));//string
        println(typeof(&#39;true&#39;));//string
        println(typeof("true"));//string
        println(typeof(&#39;9&#39;));//string
        println(typeof(&#39;A&#39;));//string
        /*
         * 单引号和双引号里面都是string类型
         */
        var c=3;
        if (c==4) 
            {println("yes");} 
        else
            {println("no");}
        //运行结果是:no
        // 但如果将判断条件改成=,结果就是yes
        //因为这时候已经是在给C赋值了
        //所以我们建议:常量放左边 4==c
        //这样子即使写错了,也会报错的!
        if (c=4) 
            {println("yes");} 
        else
            {println("no");}
            
        var d=3;
        if(d>1)
            println("a");
        else if(d>2)
            println("b");
        else if(d>2)
            println("c");
        else
            println("d");
        //运行结果是:a
        var e="abc";
        switch(e){
            case "kkk":
                println("1");
                break;
            case "abc":
                println("2");
                break;
            case "nba":
                println("3");
                break;
            default:
                println("none");
                break;
        }            
        //运行结果是:2,无论default在最上面一句还是在最下面一句
        //都必须先执行第1个case,所有case不满足的时候才会执行default!
        
        //如果把default放到了第1位,并且没有break,那么当所有东西都不满足的时候,
        //执行default的时候会把后面break之前的所有代码都当成是default的内容!
        var f="abc";
        switch(f){
            default:
                println("none");
            case "cba":
                println("1");
                break;
            case "kkk":
                println("2");
                break;
            case "nba":
                println("3");
                break;
        }            
        //循环三要素:明确条件,明确循环内容,控制循环次数!
        var g=0;
        while(g<3)//注意:这儿屁股后面写个结束分号;会要小命!
        {
            println(g);
            g++;
        }
        document.write("<font color=&#39;red&#39; >");
        //注意for 循环里面是var 不是int
        for (var i=0; i < 3; i++) {
          println(i);
        }
        document.write("</font>");
        //break和continue
        for (var i=0; i < 3; i++) {
          for(var j=0; j<4; j++){
            println("i="+i);
            break;
          }
        }//结果是012
        label:for (var i=0; i < 3; i++) {
          for(var j=0; j<4; j++){
            println("i="+i);
            break label;
          }
        }//结果是0
        label:for (var i=0; i < 3; i++) {
          for(var j=0; j<4; j++){
            println("i="+i);
            continue label;
          }
        }//结果是012
        //小练习:打印99乘法表!
        for (var i=1; i <=9; i++) {
          for(var j=1; j<=i; j++){
            document.write(j+"×"+i+"="+i*j+"   ");
          }
          println("<br />");
        }
        println("<hr />");
        //小练习2:用表格打印99乘法表
        println("<table>")
        for (var i=1; i <=9; i++) {
          document.write("<tr>");
          for(var j=1; j<=i; j++){
            document.write("<td width=150>"+j+"×"+i+"="+i*j+"</td>");
          }
         document.write("</tr>");
        }
        println("</table>")
        //数组定义有两种形式:
        var arr1=[2,4,6,7];
        println(arr1);
        println(typeof(arr1));//object
        println(arr1.length);//4
        //java中的数组只有length一个属性
        //但JS中数组有许多属性
        //遍历数组
        for (var i=0; i < arr1.length; i++) {
          println(arr1[i]);
        }
        //给数组元素赋值
        arr1[6]=100;
        for (var i=0; i < arr1.length; i++) {
          println(arr1[i]);
        }//数组会自动增长为7个成员,未定义的成员值是undefined
        //数组特点
        //1,长度可变
        //2,元素类型任意!建议使用同一类型,操作方便
        var arr2=[];//使用前必须先定义数组
        arr2[0]="abc";
        arr2[1]=&#39;A&#39;;
        arr2[2]=&#39;9&#39;;
        arr2[3]=4.5;
        for (var i=0; i < arr2.length; i++) {
          println(arr2[i]);
        }
        //数组定义的第2种方式,通过已有对象完成Array对象
        var arr3=new Array();//相当于var arr3=[];
        println(arr3.length);//0
        var arr4=new Array(6);
        println(arr4.length);//6
        for (var i=0; i < arr4.length; i++) {
          println(arr4[i]);
        }//成员全是undefined
        var arr5=new Array(2,4,6,7);
        println(arr5.length);//长度是4
        for (var i=0; i < arr5.length; i++) {
          println(arr5[i]);
        }//成员全是2,4,6,7
        //总结一下:new Array()的括号里是1个数,则代表长度
        //否则代表各个成员值!
        //函数:未知的参与运算的内容,功能的结果
        /*
         * JS中函数定义的格式是:
         * function 函数名(参数列表){
         *     函数体;
         *     返回值;
         * }
         * 然后在body里面任意script标签中通过函数名()调用
         * 如果没有返回值,return可以不写
         */
        function sayhello(str){
            println(str);
            return;
        }
        sayhello("hello world!");
        //函数中参数列表中是不用var的,直接用变量名接收就可以了!
        function add(x,y){
            return x+y;
        }
        var sum=add(6,7);
        println(sum);//13
        //下面看看函数调用特殊情况!
        function show(x,y){
            println(x+"----"+y);
        }
        show(4,5);//正常调用:4----5
        show(4);//4----undefined
        show();//undefined----undefined
        show(4,5,6);//4----5
        /*
         * 由上可知,JS不存在函数重载的形式
         * 只要写函数名()就是调用了该函数,和参数无关
         * 建议定义几个参数,就传几个参数
         * JS的函数中有一个数组arguments[]
         * 在对传入的参数进行存储和维护
         */
        function show2(x,y){
            println("arguments长度是:"+arguments.length);
            for (var i=0; i < arguments.length; i++) {
              println(arguments[i]);
            }
        }
        show2();
        show2(6);
        show2(6,7);
        show2(2,4,6,7);
        //下面继续演示函数的特殊情况
        function getSum(){
            return 2467;
        }
        var sum=getSum();
        println(sum);//这是正常情况下,返回2467
        var sum2=getSum;//少写了()
        println(sum2);//function getSum(){ return 2467; }
        alert(sum2);//结果返回的是函数的字符串形式
        /*
         * 这是因为,函数一旦定义,在内存里,实际上是一个对象
         * 函数名就是该对象的一个引用,该引用里存放的是函数的入口地址
         * 上面那句少写括号,var sum2=getSum;//少写了()
         * 实际上是把getSum存放的地址值赋给了sum2,
         * 此时sum2也指向了函数对象在内存中的地址
         * 也就是说,函数已经有了两个名字(函数名)
         * 当使用alert(sum2)时,直接将函数对象按字符串打印
         * 相当于java当中的toString方法
         * 
         * 总结:函数本身就是一个对象,函数名只是一个引用
         */
        function show3(){
            alert("show3 run....");
        }
        alert(show3);//直接弹出函数对象的字符串形式
        alert(show3());//先弹出show3 run....,再弹出undefined
        //因为show3()没有返回结果!
    </script>
    </body>
</html>

上記は Javascript_1_Grammar の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。