JavaScript

1 JavaScript介绍

JavaScript语言诞生主要是完成页面的数据验证。因此它运行在客户端,需要运行浏览器来解析执行JavaScript代码。(简称JS)。
JS是弱类型,Java是强类型。(弱类型就是类型可变 ,如var = i,i = 1,i = " abc";强类型就是定义变量的时候类型确定,不能改变)
特点:
1)交互性(可以做信息的交互)
2)安全性(不允许直接访问本地硬盘)
3)跨平台性(只需要浏览器,和平台无关)、

2 JavaScript和HTML结合

2.1 第一种使用方式

<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
    <meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
    <title></title>
<script type = "text/javascript">
    /*
    alert是js语言中提供的警告函数
    它可以接收任意参数,这个参数就是警告框提示的信息
     */

    alert("hello")
</script>


</head>

2.2第二种

引入外部的JS文件来执行。

<script type = "text/javascript" src =”1.js“ >

</script>

3 变量

JavaScript中的变量类型:
数值类型: number(对应java中的float 、int、 byte等等)
字符串类型: String
对象类型:object
布尔类型: boolean
函数类型: function

JavaScript里的特殊值:
undefind:未定义,所有js变量未赋初始值的时候,默认值都是undefined
null: 空值
NAN: 全称是:Not a Number。非数字,非数值

创建变量和java相同

<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
    <meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
    <title></title>
<script type = "text/javascript"  >
var i;
i = 12;
alert(typeof(i));

</script>

</head>

NAN的情况:

<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
    <meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
    <title></title>
<script type = "text/javascript"  >

var i = 12;
var p = "xixihaha";
alert(i*p);

</script>
</head>

3.1 JavaScript的关系运算

<script type = "text/javascript"  >
  var a = "12";
  var b = 12;
  alert(a == b);//true
  alert(a === b);//false
</script>

3.2 逻辑运算

3.2.1 &&与运算

有两种情况:
第一种:当表达式全为真的时候,返回最后一个表达式的值。
第二种:当表达式中,有一个为假的时候,返回第一个为假表达式的值。

<script type = "text/javascript">
var a = "abc";
var b = "true";
var d = false;
var c = null;
alert(a&&b);//true
alert(b&&a)//abc
alert(a&&d)//false
alert(a&&c)//null
</script>

3.2.2 || 运算

两种情况:第一种情况:当表达式为假时,返回最后一个表达式的值
第二种情况:只有一个表达式为真,就会返回第一个为真的值

4 数组

<script type = "text/javascript">
var arr = [];
arr[3] = "abc";
for (var i = 0;i<arr.length;i++){
    alert(arr[i]);
}
</script>

JS语言中的数组,只要我们通过数组下标赋值,那么最大的下标值,就会自动的给数组做扩容操作。

5 函数

5.1 函数第一种使用方式

<script language="JavaScript">
    function fun(){
        //function的无参调用
        alert("无参数funciton被调用了");
    }
    function fun2(a,b){
        //function的有参调用
        alert(a+b);
    }
fun();
    fun2(1,2)
</script>

5.2第二种使用方式

使用格式如下:
var 函数名 = function{形参列表}{函数体}
JS不允许重载
在Java中函数允许重载,但是在JS中函数的重载回直接覆盖掉上一次的定义

5.3 函数的arguments隐形参数(只在function函数内)

就在function函数中不需要定义,但却可以直接用来获取所有参数的变量,我们管它交隐形参数。

<script language="JavaScript">

function sum(num1,num2){

    var result = 0;
    for(var i = 0;i<arguments.length;i++){
        result+=arguments[i];
    }

return result;
}
alert(sum(1,2,34,5,6,67,8,9))


</script>

6 JS中自定义对象

object形式的自定义对象
对象的定义:
var 变量名 = new object();//对象实例(空对象)
变量名.属性名 = 值;//定义一个属性
变量名.函数名 = fucntion{}//定义一个函数
对象的访问:
变量名.属性/函数名();

<script language="JavaScript">

    var obj = new Object();
    obj.name = "邢大靠普"
    obj.age = "18";
    obj.fun = function (){
        alert(obj.name+obj.age);
    }
    alert(obj.fun())

</script>

var 变量名 = {};//空对象

  <script language = "JavaScript">

        var obj = {
            name: "也弟",
            fun:function () {
            alert(this.name);
        }
        }
        ;
        alert(obj.name)

    </script>

7 JS中的事件

事件是电脑输入设备与页面进行交互的响应。我们称之为事件。
常用的事件:
onload加载完成事件 页面加载完成之后,常用于作业面JS代码初始化操作
onclick单机事件 常用于按钮的点击响应操作。
onblur失去焦点事件 常用于输入框失去焦点后验证其输入内容是否合法。
onchange内容发生改变事件 常用于下拉列表和输入框内容发生改变后的操作
onsubmit表单提交事件: 常用于表单提交前,验证所有表单项是否合法

7.1事件的注册(静态 动态)

事件的注册:
告诉浏览器,当事件响应后要执行哪些操作代码,叫事件的注册或事件的绑定。
静态注册事件:通过html标枪的时间属性直接赋于事件响应后的代码,这种方式我们叫静态注册。
动态注册事件:是指通过js代码得到标签的dom对象,然后通过dom对象.事件名 = function(){}这种形式赋予事件响应后的代码,叫动态注册。
动态注册的基本步骤:
1)获取标签对象
2)标签对象.事件名 = function(){}

7.2 onload事件

静态:

<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
    <meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
    <title></title>
    <script language = "JavaScript">
       function fun(){
           alert("xixihaha");
       }
    </script>
</head>
<body onload="fun()">


</body>

动态注册是固定写法

<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
    <meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
    <title></title>
    <script language = "JavaScript">
                window.onload = function(){
    alert("123")
    }
</script>

</head>
<body> 
</body>
<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
    <meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
    <title></title>
    <script language = "JavaScript">
                window.onload = function(){
                 var btnObj = document.getElementById("btn1");
btnObj.onclick = function(){
    alert("动态注册");
}
    }
</script>

</head>
<body>
<button id = "btn1"> 按钮</button>

</body>

7.3 onblur事件

静态:

<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
    <meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
    <title></title>
    <script language = "JavaScript">


        function fun(){

            console.log("静态注册失去焦点事件");
        }




</script>

</head>
<body>
<button onblur="fun()"> 按钮</button>

</body>

运行结果如下:
在这里插入图片描述

动态:

<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
    <meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
    <title></title>
    <script language = "JavaScript">


       window.onload = function (){
           var passwordObj = document.getElementById("password");

           passwordObj.onblur = function(){
               console.log("动态");
           }
       }
</script>

</head>
<body>
      密码:<input id = "password" type = "text"> </input>

</body>

运行结果如下:
在这里插入图片描述

7.4 表单提交事件onsubmit

动态:

<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
    <meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
    <title></title>
    <script language = "JavaScript">


       window.onload = function (){
           var formsubmit = document.getElementById("Tpwork");
         formsubmit.onsubmit = function(){
           }
       }
</script>

</head>
<body>
     <form action = "http://baidu.com" method = "post" id = "Tpwork" >

         <input type = "submit" value = "注册">         
     </form>
</body>

8 DOM模型

把标签、属性、文本 转换成为对象来管理。

Document 对象的理解:
第一点:Document对象管理所有的HTML文档内容
第二点:Document它是一种树形结构的文档。有层级关系。
第三点:它让我们把所有的标签 都对象化
第四点:我们可以通过Document访问所有的标签对象

8.1 document对象

8.1.1 getElementById

验证用户

<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
    <meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
    <title></title>
    <script type = "text/javascript">

        function onclickFun(){
            var getusername = document.getElementById("username");
            var textgetusername = getusername.value;//dom对象
            var patt = /^\w(5,12)$/;
            /**
             * test方法用于测试某个字符串是不是匹配我的规则
             * 匹配返回true 不匹配返回false
             */
            if(patt.test(textgetusername)){
                alert("合法");
            }else{
                alert("不合法")
            }
        }
</script>

</head>
<body>
         <input type = "text" id = "username" value = "abc" />
         <button onclick="onclickFun()">点击</button>

</body>

8.1.2 getElementsByName

<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
    <meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
    <title></title>
    <script type = "text/javascript">
  //全选
        function checkall(){
            //让所有的复选框都选中
            //document.getElementByName()是根据指定得name属性查询返回多个标签对象集合
            //这个集合的操作跟数组一样
            var hobbies = document.getElementsByName("hobby");
            for(var i = 0;i<hobbies.length;i++){
                hobbies[i].checked = true;
            }
        }
        //全部选
  function checkNo(){
      var hobbies = document.getElementsByName("hobby");
      for(var i = 0;i<hobbies.length;i++){
          hobbies[i].checked = false;
      }
  }
  //反选
  function checkReverse(){
      var hobbies = document.getElementsByName("hobby");
      for(var i = 0;i<hobbies.length;i++){
          hobbies[i].checked = !hobbies[i].checked;
      }
  }
</script>

</head>
<body>
         <input type = "checkbox" name = "hobby" value = "c++" />C++
         <input type = "checkbox" name = "hobby" value = "java" />java
         <input type = "checkbox" name = "hobby" value = "javascript" />javascript
      <button onclick="checkall()">全选</button>
         <button onclick="checkNo()">全不选</button>
         <button onclick="checkReverse()">反选</button>

</body>

8.1.3 getElementsByTagName

<head><!-- 表示头部信息,一般包括三部分内容,title 标签,css样式,js代码-->
    <meta charset="UTF-8"><!--表示当前页面用UTF-8字符集 -->
    <title></title>
    <script type = "text/javascript">
  //全选
        function checkall(){
          // document.getElementsByTagName()根据指定标签名来进行查询并返回集合
            var inputs = document.getElementsByTagName("input");
        for(var i = 0;i<inputs.length;i++){
            inputs[i].checked = true;
        }

        }


</script>

</head>
<body>
         <input type = "checkbox" name = "hobby" value = "c++" />C++
         <input type = "checkbox" name = "hobby" value = "java" />java
         <input type = "checkbox" name = "hobby" value = "javascript" />javascript
      <button onclick="checkall()">全选</button>
</body>

8.1.4 添加子元素

    <script type = "text/javascript">
        window.onload = function(){

            //用js代码创建html标签并显示在页面上
            var dibobj = document.createElement("div");//在内存中<div></div>
            dibobj.innerHTML = "旭哥牛逼";//<div>旭哥牛逼</div>但还只是在内存中
            document.body.appendChild(dibobj);
        }

</script>

效果相同

    <script type = "text/javascript">
        window.onload = function(){


            var t = document.createTextNode("123")
            document.body.appendChild(t);

        }



</script>

8.2 正则表达式

    <script type = "text/javascript">

        /**
         * 正则表达式对象的两种写法
         * @type {RegExp}
         */
               //表示字符串中,必须包含字母e
        var patt = new RegExp("e");
        var  patt2 = /e/;
</script>

(更详细内容查百度)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值