JavaScript基础知识及99乘法表练习

JavaScript

概念:一门客户端脚本语言

  • 运行在客户端浏览器中的,每一个浏览器都有JavaScript的解析引擎
  • 脚本语言:不需要编译,直接就可以被浏览器解析执行了

功能:

​ *可以来增强用户和html页面的交互过程,可以来控制html元素,让页面有一些动态的效果,增强用户的体验。

JavaScript发展史:

  1. 1992年,Nombase公司,开发出第一门客户端脚本语言,专门用于表单的校验。命名:C–,后来更名为:ScriptEase。
  2. 1995年,Netscape(网景)公司:开发了一门客户端脚本语言:LiveScript。后来,请来SUN公司的专家,修改LiveScript,命名JavaScript。
  3. 1996年,微软抄袭JavaScript开发出Jscrip语言
  4. 1997年。ECMA(欧洲计算机制造商协会),ECMAScript,就是所有客户端脚本语言的标准。

JavaScript = ECMAScript + JavaScript特有的东西(BOM+DOM)

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

1.基本语法:

(1)与html结合方式

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

注意:

1.<script>可以定义在html页面的任何地方。但是定义的位置会影响执行顺序。

2.<script>可以定义多个。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS与html结合方式</title>

<!--内部JS-->
    <script>
        alert("HelloWorld");
    </script>
<!--外部JS-->
    <script src="js/a.js"> </script>
</head>
<body>
<input type="text">
</body>
</html>

(2)注释

  • 1.单行注释://注释内容
  • 2.多行注释:/注释内容/
(3)数据类型:

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

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

​ 2.引用数据类型:对象

(4)变量

变量:一小块存储数据的内存空间
Java语言是强类型语言,而JavaScript是弱类型语言

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

语法:

  • var(let) 变量名 = 初始化值;
  • typeof运算符:获取变量的类型
  • 注:null运算后得到的是object
(5)运算符

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

  • ++,–,+(正号) +3
  • ++ – 自增(自减)
  • ++,-- 在前,先自增(自减),再运算
  • ++,-- 在后,先进行运算,再自增(自减)
  • +,- 正负号:

注意:在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>
       /*​
       1.一元运算符 :只有一个运算数的运算符
         ++,--,+(正号)  +3
         ++ -- :自增(自减)
         ++,-- 在前,先自增(自减),再运算
         ++,-- 在后,先进行运算,再自增(自减)

         *+,-:正负号:
             注意:在JS中,如果运算数不是运算符所要求的类型,那么JS引擎会自动的将运算数进行类型转换
                   *其他类型转number
                        *string转number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字)
                        *boolean转number:true转为1,false转为0
       */
       let num =3;
       let a = num++;
       document.write(num); //4
       document.write(a); //3
       let num2 =3;
       let b = ++num2;
       document.write(num2); //4
       document.write(b); //4
       document.write("<hr>")

       let c = +"123";
       // alert(typeof(c))
        alert(c+1); //124

       let  d = +"12adb";
       alert(typeof(d)) //number
       alert(d+1) //NaN

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

    </script>
</head>
<body>

</body>
</html>

2.算术运算符
+ - * /

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

4.比较运算符
> < >= <= == ===(全等于)
比较的方式

  • 1.类型相同
  • 字符串:按照字典顺序比较。按位逐一比较,直到得出大小为止。
  • 2.类型不同:先进行类型转换,再去比较
  • ===:全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>比较运算符</title>

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

     document.write(("abc" < "acd")+"<br>"); //true

     document.write(("123" == 123)+"<br>"); //true

     document.write(("123" === 123)+"<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>
     let a = 3;
     let b = 4;
      /*
       * 逻辑运算符
       * &&:与(短路)
       * ||:或(短路)
       * !:非
       *     *其他类型转boolean
       *          1.number:0或NaN为假,其他为真
       *          2.string:除了空字符串(""),其他都是true
       *          3.null&undefined:都是false
       *          4.对象:所有对象都是true
       */
    let flag=true;
    document.write(flag+"<br>"); //true
    document.write(!flag+"<br>"); //false

     document.write("<hr>");
     //number
     let num=3;
     let num2 = 0;
     let num3 = NaN;
     document.write(!!num+"<br>"); //true
     document.write(!!num2+"<br>"); //false
     document.write(!!num3+"<br>"); //false

/*     while (1){

     }*/
     document.write("<hr>");
     //string
     let str1="abc";
     let str2 = "";

     document.write(!!num+"<br>"); //true
     document.write(!!num2+"<br>"); //false

     document.write("<hr>");

     //null&undefined
     let obj=null;
     let obj2;

     document.write(!!obj+"<br>"); //false
     document.write(!!obj2+"<br>"); //false

     document.write("<hr>");

     //object
     let date = "123";
     document.write(!!date+"<br>"); //true

     document.write("<hr>");

     /**
      * js中可以这样定义,简化书写。
      * @type {string}
      */
     let obj= "123";
     if (obj !=null&& obj.length> 0){ //防止空指针异常
          alert(123)
          }
     if (obj){ //防止空指针异常
         alert(111)
     }
    </script>
</head>
<body>

</body>
</html>

6.三元运算符

​ ?: 表达式

    <script>
        let a = 3;
        let b = 4;

        let c = a > b?1:0;

        alert(c);
    </script>

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

(6)流程控制语句:

1.if…else…
2.switch

  • 1)在java中,switch语句可以接收的数据类型:byte,int,short,char,枚举(1.5),String(1.7) ​
    switch(变量){ ​
    case 值: ​
    }
  • 2)在JS中,Switch什么类型都可以

3.while
4.do…while
5.for

(7) JS特殊语法
  • 1.语句以分号;结尾,如果一行只有一条语句,则;可以省略(不建议)
  • 2.变量的定义使用let关键字,也可以不使用
    用let:定义的变量是局部变量
    不用:定义的变量是全局变量(不建议)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>特殊语法</title>
    <script>
     //1.语句以分号;结尾,如果一行只有一条语句,则;可以省略(不建议)
     let a = 3;
     // alert(a);

     /*
     * 2.变量的定义使用var(let)关键字,也可以不使用
     *   *用var(let):定义的变量是局部变量
     *   *不用:定义的变量是全局变量(不建议)
     * */
        /*var b = 4; //局部变量
        alert(b);
        c = 5; //全局变量
        alert(c);*/
      var b;
      function fun() {
       b = 4;
      }
      fun();
     alert(b);
    </script>
</head>
<body>

</body>
</html>

​ (8)练习: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 (let i=1;i<= 9; i++){
            document.write("<tr>"); //行
          for(let j = 1;j <= i;j++){
            document.write("<td>");
            //输出 1 * 1 = 1
              document.write(i+" * "+j+" = "+i*j+"&nbsp;&nbsp;&nbsp;");
            document.write("</td>");
          }
/*          //输出换行
            document.write("<br>")*/
          document.write("</tr>")
        }
        //2.完成表格的嵌套
      document.write("</table>");
    </script>
</head>
<body>

</body>
</html>

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值