JavaScript

01_Javascript的使用方式

js的使用方式 :
     
  js的使用方式
        script的type属性可以不写,如果要写的话使用
        type="text/javascript"

方式1:js的内部方式

         <script>
            //单行注释
            /*多行注释*/
            
            在js常见的函数
            向浏览器打印内容,类似于Java中的控制台输出语句
            document.write("hello,JavaScript我来了!") ;
            
            还可以在浏览器中控制台中打印内容
            console.log("hello,JavaScript我来了") ;
            
           /在浏览中弹出一个提示框  
            window对象是浏览器中顶级对象,可以省略不写!
            window.alert("helloworld") ;
            简写为:
            alert("helloworld") ;
        </script>

方式2:js的外部方式

           外部方式 实际开发中(前端开发人员开发使用的!)
         需要在js文件夹中单独创建一个后缀为.js的文件
         书写js代码,在当前html页面中将js文件导入即可!
           
          导入外部js文件


        <script src="js/01.js"></script>

02_javascript中的变量以及数据类型

        内部方式
        <script>
           
        定义变量的注意事项
              1)在js中定义变量,使用var来定义,var可以省略不写(刚开始,建议写上)
              2)javascript是弱类型语言,它的语法结构不严谨! 可以重复定义变量的,后面的变量的值将前面的变量值覆盖掉
              3)查看js的变量的数据类型,使用一个函数 typeof(变量名)
              4)var可以任意数据类型             
       js的基本数据类型
             1)无论是整数还是小数,都是number类型, ---- js引擎会自动提升为 Number 对象类型
             2) 无论是字符串还是字符,都是string类型----js引擎会自动提升为 String 对象类型
             3)boolean类型                      ----js引擎会自动提升为 Boolean 对象类型
             4)object类型   (创建一个对象 )  ---- js引擎会自动提升为Object对象类型
                                  在Js中,Object对象代表所有js对象的模板!
              5)undefined类型 :未定义类型 (这种没有意义),因为没有赋值!
      

03_Js的运算符   

  
            Js是弱类型,语法结构不严谨
            true,false在运算的时候都自己默认值 true是1,false是0
            实际开发中,不会这样去做的,boolean类型值都是直接进行逻辑判断!
        
        
            算术运算符
                +,-,*,/,%
                ++,--
            赋值运算符
                =:基本赋值
                +=,-=,*=,/=,%=
            比较(关系运算符)
                <,<=,>,>=,==,!=
                
            逻辑运算符
                实际开发中:逻辑双与&&,逻辑双或||
            三元(三目)运算符
                    (表达式)?执行true的结果:false的结果
            
  
04_Js中的流程控制语句     

        三大类
                1)顺序结构:js代码从上而下依次加载
                2)选择结构
                    if结构
                        if(表达式){
                            语句
                        }
                        
                        if(表达式){
                            
                        }else{
                            
                        }
                        
                        if(表达式1){
                            语句1;
                        }else if(表达式2){
                            语句2 ;
                            ...
                            ...
                        }else{
                            语句n;
                        }
                        
                    switch结构
                    
                    switch(表达式){
                    case 可以变量/也可以常量:
                            语句1;
                            break ;
                    ...
                    ...
                    default:
                            语句n;
                            break ;
                    }
                3)循环结构
                
                for(使用居多),while(其次while),do-while
                
             选择结构之if格式2 :针对两种情况进行判断
             实际开发中,if里面一个表达式---true或者false
            因为js是弱类型语言,
            1)如果if里面是一个非0的整数,条件是成立的;
            2)如果是非空字符串,条件成立;
            3)如果是非null的对象,条件成立的;
             if(new Object()){
                alert("条件成立") ;
            }else{
                alert("条件不成立")
            }

           


                switch语句的结束条件
                    1)遇见break结束
                    2)程序默认执行到末尾
                case语句后面没有break,会造成"case穿透现象!"
                
                
                case后面跟Java语言的case语句不一样的地方就是这个case后面可以是变量!
                而Java中只能是常量!
           

switch(week){
            case 1:
                document.write("星期一") ;
                break ;
            case 2:
                document.write("星期二") ;
                break ;
            case b: //b是变量
                document.write("星期三") ;
                break ;
            case 4:
                document.write("星期四") ;
                break ;
            case 5:
                document.write("星期五") ;
                break ;
                
            case 6:
                document.write("星期六") ;
                break ;
            case 7:
                document.write("星期日") ;
                break ;
            default:
                document.write("非法数据!") ;
                break ;
            
            }

2)事件监听器
            function testSerach(){
                alert("触发了这个点击事件") ;
                
                需要获取文本输入框的内容  获取的input标签的value属性
                dom操作:  
                1)通过特别的方式获取标签对象   最常用的 document.getElementById("id属性值") ;
                2)使用标签对象改变标签的属性
                
                获取id="month"所在的input标签对象
                var inputObject =document.getElementById("month") ;
                获取到value属性,获取文输入框的内容
                var content = inputObject.value ;

Js事件编程三要素
    1)事件源 ----就是html标签  的单击,双击....
                      
    2)编写事件监听器-- 就是编写一个函数     function 函数名称(){}
            
    3)绑定事件监听器-- 就在事件源上加上onxxx属性="函数名称()"

06_for-in语句

        for-in类似于增强for循环
            应用场景:
                1)遍历数组
                2)遍历对象的属性 (明天讲:js自定义对象 4种方式)

     在js如何 创建一个数组
              方式1:  var 数组对象 = new Array() ;  //不指定长度
              方式2: var 数组对象 = new Array(长度) ;//指定长度

             方式3:静态初始化,
             arrayObj = new Array([element0[, element1[, ...[, elementN]]]])
             简写格式  :var 数组对象名称=  [元素1,元素2,元素3,.....] ;
             在js中,数组可以存储任何类型元素,实际开发中,还是遵循数据类型一致!

           遍历数组

                普通for
                    for(var i = 0 ; i < arr.length; i++){
                        document.write(arr[i]+"<br/>") ;
                    }

                增强for循环for-in语句的格式
           
                for(var 变量名 in 数组或者对象名称){
                    使用变量名;
                }
           

       07_Js中的函数定义以及调用

                
                定义函数的 格式1                形式参数列表
                        function 函数名称(参数名称1,参数名称2....){
                            函数的里面业务逻辑
                            直接在这输出document.write("xxx") ;
                        }
                        格式1调用:
                            单独调用
                            函数名称(实际参数列表) ;
                            
                            
                格式2:(推荐)
                        function 函数名称(参数名称1,参数名称2....){
                            
                            函数的里面的业务逻辑
                            return 结果;
                        }
                        格式2调用:
                        赋值调用
                        var 最终结果变量 = 函数名称(实际参数列表) ;   

                               
                定义函数的注意事项:
                1)js是弱类型语言,定义函数的时候,参数名称不能携带var
                2)js定义时候,没有返回值类型,但是函数中可以携带return语句,代表方法结束!
                3)Js中没有函数重载的概念,如果方法名相同,后面定义的函数将前面定义的函数覆盖了    
                4)
                    实际参数列表 < 形式参数列表,函数依然会被调用,不过值是"NaN",有一个形式参数没   有赋值
                    实际参数列表 > 形式参数列表,将实际参数的值赋值给形式参数,多余的实际参数,直接省略不计!
                    
                5)隐藏一个数组名称:arguments,作用:将实际参数绑定给形式参数        

                

//定义函数,两个数据求和
                格式1的写法
                //function sum(var a, var b ){//不能带var
                            
                 function sum( a,  b ){
                    var c = a+b ;
                    document.write("c:"+c);
                }
                //调用
                sum(10,20) ;
                
                
                格式2的写法
                 function sum(a,b){
                    var c =a+b ;
                    return c;
                }
                
                function sum(a,b,c){ //a=10,b=15,c=20
                    //隐藏一个数组名称:arguments
                    //作用:将实际参数绑定给形式参数
                    for(var i = 0 ; i< arguments.length;i++){
                        document.write(arguments[i]+"&nbsp;&nbsp;<br/>");
                    }
                    
                    var d = a+b+c ;
                    return d ;
                }
                
                
                赋值调用
                var result = sum(10,15,20) ;
                document.write("result:"+result) ;

08_Js内置对象Date

        Js内置对象:Date日期,String字符串,Array数组,正则表达式对象..
            浏览器在解析javascript的时候,能够识别这个对象,使用里面的方法!

         <script>
            日期对象的基本使用 :dateObj = new Date()
            创建一个日期对象
            var date = new Date() ;
            输出
            document.write(date) ;//Mon May 09 2022 16:40:31 GMT+0800 (中国标准时间)  原生Date格式
            
            
            获取年份
            getYear() :当前的年份与 1900 年之间的差距
            改用getFullYear()
            var year = date.getYear() ;
            var year = date.getFullYear() ;
            document.write(year+"年") ;
            
            
            获取月份
            getMonth() :返回一个处于 0 到 11 之间的整数
            var month = date.getMonth()+1 ;
            document.write(month+"月") ;
            
            月中的日期 getDate( ): 1 到 31 之间的整数
            var monthWithDate = date.getDate() ;
            document.write(monthWithDate+"日&nbsp;&nbsp;") ;
            
            getHours() 获取小时值
            document.write(date.getHours()+":") ;
            getMinutes():获取分钟值
            document.write(date.getMinutes()+":") ;
            getSeconds() :getSeconds()
            document.write(date.getSeconds()) ;
         </script>

09_面试题_innerText和innerHTML

      span:行内标签,
            任何标签都有这俩个innerText和innerHTML
            
            这两个属性代表设置标签的文本内容
            innerHTML可以加入html标签,可以被解析 (推荐)
            innerText只是普通的文本内容,不能够解析html标签,如果加入html标签
            就会原封不动的解析成普通文本!
            
         <script>
            dom操作:
            1)获取span标签对象 : 通过id属性获取
            var spanObject = document.getElementById("tip") ;
            2)通过标签对象改变属性  :innerHTML属性
            spanObject.innerHTML = "<h2>系统时间</h2>" ;
            innerText属性
            spanObject.innerText = "<h2>系统时间</h2>";
    </script>

10_网页时钟

        <html>
    <head>
        <meta charset="utf-8">
        <title>10_网页时钟</title>
    </head>
    <body>
        <h3>当前系统时间是:</h3>
        <span id="spanTip"></span>
    </body>
    <script>
        function generateDate(){
            1)获取当前系统时间
            1.1)创建日期对象
            var date = new Date() ;
            1.2)拼接出来时间字符串
            var dateStr = date.getFullYear()+"-"+(date.getMonth()+1)+"-"
            +date.getDate()+"&nbsp;&nbsp;"+date.getHours()+":"+date.getMinutes()+":"+
            date.getSeconds() ;
            
            2)dom(文档对象模型编程)操作:
            2.1)获取id="spanTip" 所在的span标签对象
            var span = document.getElementById("spanTip") ;
            2.2)设置span标签的文本内容
            span.innerHTML ="<h3>"+dateStr+"</h3>"  ;
        }           
                                  
            3)开启网页定时器
            setInterval("定时任务()",时间毫秒值):每经过时间毫秒值重复执行这个定时任务..
            setTimeout("定时任务()",时间毫秒值):经过这个毫秒值之后,执行一次定时任务..
            
            setInterval("generateDate()",1000) ; //每1秒重复执行生成时间的任务
    </script>

表单校验的步骤

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>表单校验</title>
        <style>
            /* 给表单添加背景颜色 格式  */
            *{
                margin: 0;
                padding:0;
                box-sizing: border-box;
            }
            html,body{
                width: 100%;
                height: 100%;
            }
            #one{
                width: 99%;
                height: 99%;
                min-height: 600px;
                min-width: 1240px;
                position: relative;
            }
            #checkform{
                width: 600px;
                height: 500px;
                border:2px solid darkgrey;
                position: absolute;
                left: 50%;
                margin-left: -300px;
                top: 180px;
                text-align: center;
                line-height: 100px;
                border-radius: 7px;
                font-size: 13px;
                background-color: darkseagreen;
            }
            
        </style>
    </head>
    <body>
        <!-- form表单
            action="server.html 跳转到某个窗口
            method="get"    方法:get方法获取
            onsubmit 提交事务 返回值必须是true才可以提交
          -->
        
        <div id="one">
            <form id="checkform" action="server.html" method="get" οnsubmit="return checkAll()">
                用户名:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" placeholder="请输入用户名" id="getusername" οnblur="checkusername()"/><span id="usenameTip"></span><br />
                密&nbsp;&nbsp;码:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="password" placeholder="请输入密码" id="getpassword" οnblur="checkpasswork()"/><span id="passwordTip"></span><br />
                确认密码:<input type="password" placeholder="请再次输入密码" id="getpasswordaga" οnblur="checkpasswordaga()"/><span id="passwordTipaga"></span><br />
                邮箱:&ensp;&ensp;&ensp;&ensp;<input type="text" placeholder="请输入邮箱" id="getemail" οnblur="checkemail()"/><span id="emailTip" ></span><br />
                &ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;<input type="submit" value="注册"/><br />
            </form>
        </div>
        
        
    
        
    </body>
    <script>
        /*
         校验用户名是否可用
        
         */
        function checkusername(){            
            var reg = /^[A-Za-z0-9]{4,14}$/;    //设置正则表达式,判断用户输入用户名格式是否正确
            var username = document.getElementById("getusername").value;    //获取id为"getusername"的标签对象
            var span = document.getElementById("usenameTip");                //获取id为"usenameTip"的标签对象
            if(reg.test(username)){                            //判断用户名格式是否正确
                span.innerHTML = "用户名可用".fontcolor("green");
                return true;
            }else{
                span.innerHTML = "用户名不可用".fontcolor("red");
                return false;
            }
        }    
        function checkpasswork(){                
            var reg = /^[A-Za-z0-9]{6,14}$/                    //设置正则表达式,判断用户输入密码格式是否正确                
            var password = document.getElementById("getpassword").value;    //获取id为"getpassword"的标签对象    
            var span = document.getElementById("passwordTip");                //获取id为"passwordTip"的标签对象
            if(reg.test(password)){                            //判断用户密码是否正确
                span.innerHTML = "密码可用".fontcolor("green");
                return true;
            }else{
                span.innerHTML = "密码格式错误".fontcolor("red");
                return false;
            }
        }
        function checkpasswordaga(){
            var password = document.getElementById("getpassword").value;//获取id为"getpassword"的标签对象的值            
            var passwordaga = document.getElementById("getpasswordaga").value    //获取id为"getpasswordaga"的标签对象的值    
            var span = document.getElementById("passwordTipaga");
            if(password == passwordaga){                        //判断用户输入两次密码是否一致
                span.innerHTML = "两次密码一致".fontcolor("green");
                return true;
            }else{
                span.innerHTML = "两次密码不一致".fontcolor("red");
                return false;
            }
        }
        function checkemail(){                                                //设置正则表达式,判断用户输入邮箱格式是否正确    
            var reg = /^[A-Za-z0-9]+@[A-Za-z0-9]+(\.[a-z]{2,3}){1,3}$/;                                                         
            var email = document.getElementById("getemail").value;            //获取id为"getemail"的标签对象
            var span = document.getElementById("emailTip");                    //获取id为"emailTip"的标签对象的值
            if(reg.test(email)){
                span.innerHTML = "邮箱可用".fontcolor("green");
                return true;
            }else{
                span.innerHTML = "邮箱格式有误".fontcolor("red");
                return false;
            }
        }
        function checkAll(){                        //必须所有表单都满足条件才可以提交任务
            if( checkusername() && checkpasswork() && checkpasswordaga () && checkemail()){
                return true ;
            }else{
                return false ;
            }
        }
        
    </script>
</html>

数据库

1.什么是数据库:

        数据库存放数据的一种容器,存放数据的仓库,

        
之前怎么存储数据?
    1)定义变量,类似局部变量,随着方法调用而结束;
    2)容器存储:
            数组--->查询快,增删慢
            集合--->单列集合Collection/双列集合Map
                    长度可变,
                            List<Student>
            字符串缓冲区:StringBuffer/StringBuilder  
                        最终可能需要将字符串缓冲区类型---String

  3)IO流
           Input
           Output  
               可以将内容存储磁盘上 文件中 (读写复制---很耗时)
    
   4)数据库来存储数据
             执行效率高
             底层有树结构在里面
             数据库支持 "事务",来解决 业务中存在问题  "转账操作"!
             即使关机了,数据永久保存!
             

2.数据库的分类

             

关系型数据库:
        书写sql语句  (Structure Query Language:结构化查询语言)
        oracle  :收费  大型公司企业居多(西安银行,汇丰,神州数码...)
                    买数据库,买oracle第三方服务...
        
mysql   :免费  中小型公司使用居多
        sqlserver:跟.net平台兼容性比较好一些
        sqllite: 轻量级的关系数据库,嵌入式里面居多
        mariaDB:跟mysql同级别的
        
非关系型数据库:NoSQL数据库

        键值(Key-Value)存储数据库 : redis 做数据缓存------ 分布式系统架构 使用redis 分布式缓存
        文档类型数据库:
                    MongoDb
```

3.mysql的基本语法

        

        数据库的DDL语句(数据库的定义语句)之库的操作

                1)查询当前mysql中自带的所有库有哪些

                        show databases;

                2)创建一个库

                        create database 库名;

                3)查询创建库的字符集

                        show create database 库名;

                4)修改库的字符集

                        alter database 库名 default character set 字符集名称

                5)删除库(2两种方式)

                         drop database 库名;

                         drop database if exists 库名;    //如果存在这个库 删除该库

数据库DDL语句(数据库定义语句)之建表,修改表,查询表,删除表... 

                1)

                mysql常见的数据类型
                     int :整数类型 默认最大长度11位字符,给int类型的数据的时候,当前存储的是值的真实长度
         举例
                 年龄字段age  int类型
                 
     int(字符数):  整数类型,     给int(3)这个值的时候,实际存储3位,但是赋值的时候不够3位  (使用很少)
                     id字段 1-----int(3) -------------------001
                     
     varchar(最大支持255个长度):     字符串类型
             指定varchar(指定长度)
     date:仅仅是日期类型
     datetime:日期+时间类型
     timestap:时间戳 (举例:管理员添加一个商品,商品上架的时间:当前系统瞬时时间 :2021-5-11 16:50分)
     double:小数类型
         double(几位数,小数点后保留的位数)

                2)使用某个数据库

                        use 库名:

                3)建表 create table 表名(
                  字段名称1 字段类型1,
                  字段名称2 字段类型2,
                  ...
                  ...
                  字段名称n 字段类型n
                  ) ;

                4)- 查询当前库中有哪些表

                        show tables;

                5)查看表的结构

                        desc 表名;

                6)修改表的字段名称

                        alter table 表名 change 旧字段名称 新字段名称 旧字段的数据类型;

                7) 修改表的字段类型 modify

                        alter table 表名 modify 字段名称 新的字段类型

                8)修改表:给表中添加一个新的字段

                        alter table 表名 add 字段名称 字段类型;

                9)复制一张表

                        create table 新表名 like 就表名;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值