javaScript基础22_基本语法2

ECMAScript:客户端脚本语言的标准

一、与html结合方式

 1、内部JS:
    定义<script>,标签体内容就是js代码
 2、外部JS:
    定义<script>,通过src属性引入外部的js文件

 3、注意:
    1. <script>可以定义在html页面的任何地方。但是定义的位置会影响执行顺序。
    2. <script>可以定义多个。

 js/a.js文件:

alert("我是外部的js文件");

 html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        alert("hello world")  //阻塞式,不点击确定按钮,不会加载下面的内容
    </script>
    <script src="js/a.js"></script>
</head>
<body>
    <input type="text">
</body>
</html>

    

  

二、注释

 1、单行注释://注释内容
 2、多行注释:/*注释内容*/

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        //单行注释
        /*
            多行注释1
            多行注释2
         */
    </script>
</head>
<body>
</body>
</html>

三、数据类型

 1、原始数据类型(基本数据类型)

  • number:数字。 整数/小数/NaN(not a number 一个不是数字的数字类型)
  • string:字符串。 字符串 "abc" "a" 'abc'
  • boolean: true和false
  • null:一个对象为空的占位符
  • undefined:未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined

 2、引用数据类型:对象

四、变量

 1、变量:一小块存储数据的内存空间

 2、Java语言是强类型语言,而JavaScript是弱类型语言。

  • 强类型:在开辟变量存储空间时,定义了空间将来存储的数据的数据类型。只能存储固定类型的数据
  • 弱类型:在开辟变量存储空间时,不定义空间将来的存储数据类型,可以存放任意类型的数据。

 3、语法:

var 变量名 = 初始化值; 

 4、typeof运算符:获取变量的类型。

    注:null运算后得到的是object。您也许会问,为什么typeof运算符对于null值会返回“Object”。这实际上是JavaScript最初视线中的一个错误,然后被ECMAScript沿用了。现在,null被认为是对象的占位符,从而解释了这一矛盾,单从技术上来说,它仍然是原始值。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>变量</title>
    <script>

        //定义number类型
        var num = 1;
        var num2 = 1.2;
        var num3 = NaN;

        //输出到页面上
        document.write(num+"---"+typeof(num)+"<br>");
        document.write(num2+"---"+typeof(num2)+"<br>");
        document.write(num3+"---"+typeof(num3)+"<br>");

        //定义string类型
        var str = "abc";
        var str2 = "a";
        var str3 = 'edf';
        document.write(str+"---"+typeof(str)+"<br>");
        document.write(str2+"---"+typeof(str2)+"<br>");
        document.write(str3+"---"+typeof(str3)+"<br>");

        //定义Boolean类型
        var flag = true;
        var flag2 = false;
        document.write(flag+"---"+typeof(flag)+"<br>");
        document.write(flag2+"---"+typeof(flag2)+"<br>");

        //定义null
        var obj = null;
        var obj2 = undefined;
        var obj3 ;
        document.write(obj+"---"+typeof(obj)+"<br>");
        document.write(obj2+"---"+typeof(obj2)+"<br>");
        document.write(obj3+"---"+typeof(obj3)+"<br>");

    </script>
</head>
<body>

</body>
</html>

  

五、运算符

 1、一元运算符:只有一个运算数的运算符

  • ++ --: 自增(自减)
    • ++(--) 在前,先自增(自减),再运算
    • ++(--) 在后,先运算,再自增(自减)
  • +(-):正负号,代表数字是正的还是负的
  • 注意:在JS中,如果运算数不是运算符所要求的类型,那么js引擎会自动的将运算数进行类型转换
    • 其他类型转number:         
      • string转number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字)
      • boolean转number:true转为1,false转为0
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>一元运算符</title>
    <script>

        var num = 3;
        var a = num ++;
        document.write(num+"<br>");//4
        document.write(a+"<br>");//3

        var num2 = 3;
        var a2 = ++ num2;
        document.write(num2+"<br>");//4
        document.write(a2+"<br>");//4

        document.write("<hr>");
        var b = +3;c
        document.write(b+"<br>");//3
        var c = -3;
        document.write(c+"<br>");//-3

        var d = + "123";
        document.write(d+"---"+typeof(d)+"<br>");//123---number

        var e = +"abc";
        document.write(e+"---"+typeof(e)+"<br>");//NaN---number

        var f = +"123abc";
        document.write(f+"---"+typeof(f)+"<br>");//NaN---number

        var flag = +true;
        var flag2 = +false;
        document.write(flag+"---"+typeof(flag)+"<br>");//1---number
        document.write(flag2+"---"+typeof(flag2)+"<br>");//0---number

    </script>
</head>
<body>

</body>
</html>

 2、算数运算符
   + - * / % ...

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>算数运算符</title>
    <script>
        var a = 3;
        var b= 4;
        document.write(a+b+"<br>");//7
        document.write(a-b+"<br>");//-1
        document.write(a*b+"<br>");//12
        document.write(a/b+"<br>");//0.75
        document.write(a%b+"<br>");//3
    </script>
</head>
<body>

</body>
</html>

 3、赋值运算符
   = += -+....

 4、比较运算符
   > < >= <= == ===(全等于)
   比较方式
      1. 类型相同:直接比较
        字符串:按照字典顺序比较。按位逐一比较,直到得出大小为止。
      2. 类型不同:先进行类型转换,再比较
        ===:全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>比较运算符</title>
    <script>
        document.write((3>4)+"<br>");//false
        document.write(("abce">"abcd")+"<br>");//true

        document.write(("122">123)+"<br>");//false
        document.write(("122"==122)+"<br>");//true
        document.write(("122"===122)+"<br>");//false
    </script>
</head>
<body>

</body>
</html>

 5、逻辑运算符
    && || !
    其他类型转boolean:
      1. number:0或NaN为假,其他为真
      2. string:除了空字符串(""),其他都是true
      3. null&undefined:都是false
      4. 对象:所有对象都为true

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>逻辑运算符</title>
    <script>
        /*
        * &&:与(短路)
        * ||:或(短路)
        * !:非
        *
        */
        var flag = true;
        document.write(flag+"<br>");//true
        document.write(!flag+"<br>");//false
        //number
        var num = 3;
        var num2 = 0;
        var num3 = NaN;
        document.write(!!num+"<br>");//true
        document.write(!!num2+"<br>");//false
        document.write(!!num3+"<br>");//false
        //string
        var str = "abc";
        var str2 = "";
        document.write(!!str+"<br>");//true
        document.write(!!str2+"<br>");//false
        //null&undefined
        var obj = null;
        var obj2;
        document.write(!!obj+"<br>");//false
        document.write(!!obj2+"<br>");//false
        //object
        var date = new Date();
        document.write(!!date+"<br>");//true

        obj ="123";
        //js中可以这样定义,简化书写。
        if(obj){//防止空指针异常
            
        }
    </script>
</head>
<body>

</body>
</html>

 6、三元运算符

    ? : 表达式

    语法:
      * 表达式 ? 值1 : 值2;
      * 判断表达式的值,如果是true则取值1,如果是false则取值2;

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>三元运算符</title>
    <script>

        var a = 3;
        var b = 4;
        var c= a>b ? 1 : 0;
        document.write(c);//0
    </script>
</head>
<body>
</body>
</html>

六、流程控制语句

 1、if...else...
 2、switch:

  • 在java中,switch语句可以接受的数据类型: byte int short char、枚举(1.5) 、String(1.7)
switch(变量):
   case 值:
  • 在JS中,switch语句可以接受任意的原始数据类型
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>switch语句</title>
    <script>
        var a = "abc";
        switch (a) {
            case 1:
                document.write("number");
                break;
            case "abc":
                document.write("string");
                break;
            case true:
                document.write("boolean");
                break;
            case null:
                document.write("null");
                break;
            case undefined:
                document.write("undefined");
                break;

        }
    </script>
</head>
<body>
</body>
</html>

 3、while

    <script>
        //1-100求和 5050
        var sum = 0;
        var num = 1;
        while (num<=100){
            sum += num;
            num ++;
        }
        document.write(sum);//5050
    </script>

 4、do...while
 5、for

    <script>
        //1-100求和 5050
        var sum = 0;
        for(var i = 1;i <=100;i++){
            sum += i;
        }
        document.write(sum);//5050
    </script>

七、JS特殊语法

 1、语句以;结尾,如果一行只有一条语句,则 可以省略 (不建议)
 2、变量的定义使用var关键字,也可以不使用
    用var: 定义的变量是局部变量
    不用var:定义的变量是全局变量(不建议)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>特殊语法</title>
    <script>
        //1. 语句以;结尾,如果一行只有一条语句,则可以省略(不建议)
        var a = 3;
        document.write(a+"<br>");//3

        /*
            2. 变量的定义使用var关键字,也可以不使用
                用var:定义的变量是局部变量
                不用var:定义的变量是全局变量
         */
        b=4;
        document.write(b+"<br>");

        function fun2() {
            c = 4;
            document.write(c+"*****<br>");//4*****
        }
        fun2();
        document.write(c+"&&&&&<br>");//4&&&&&

        function fun() {
            var d = 4;
            document.write(d+"-----<br>");//4-----
        }
        fun();
        document.write(d+"+++++<br>");//无输出
    </script>
</head>
<body>
</body>
</html>

八、练习:99乘法表

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>99乘法表</title>
    <style>
        td{
            border: 1px solid;
        }
    </style>
    <script>
        document.write("<table align='center'>");
        //1.完成基本的for循环嵌套,展示乘法表
        for (var i = 1; i <=9 ; i++) {
            document.write("<tr>");
            for (var j = 1; j <= i; j++) {
                document.write("<td>");
                //输出
                document.write(i+"*"+j+"="+(i*j)+"&nbsp;&nbsp;");
                document.write("</td>");
            }
            //输出换行
            // document.write("<br>");
            document.write("</tr>")
        }
        //2.完成表格的嵌套
        document.write("</table>");

    </script>
</head>
<body>
</body>
</html>

  

 

posted on 2024-06-03 16:15  花溪月影  阅读(2)  评论(0编辑  收藏  举报