JavaScript

如何使用js

引入js到页面的方法
  1. 定义script标签 在标签内写js代码
  2. 定义.js文件 使用script标签引入 js文件(推荐)
<script src="js/use.js">
    
    </script>

ECMAScript基本语法

  1. 变量
    格式:var 变量名; 默认值:undefined
    特点:可以保存任意数据类型
  2. 数据类型
    分类:
    1. number 数值类型(整数和小数)
    2. string 字符类型(单个字符和多个字符)
    3. boolean 布尔类型(要么true 要么false)
    4. object 对象类型(除了以上类型 都是对象类型)
    5. undefined 未定义变量默认值
  3. 运算符
    分类:
    1. 算术运算符:+ - * / % ++ –
    2. 赋值运算符: = += -= *= /= %=
    3. 比较运算符: > < >= <= != == === !==
    4. 逻辑运算符: & | ! && ||
    5. 位运算符: << >> >>> ^
    6. 三元运算符: 表达式?true:false
  4. 流程控制
    1. if(){}else{} if(){}else if(){}…
    2. switch(){case: break;…}
    3. while(){} do{}while();
    4. for(){}
  5. 数组
    定义:存储一组数据 相当于java中的数组+集合
    特点:可以是任意数据类型 长度可变
    使用:
    1. 定义
    2. 存值
    3. 遍历
    4. 删除值
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 1. 定义数组  java  数据类型[] 数组名 = new 数据类型[5]
        var arr = new Array(); // 定义空数组
        var arr1 = new Array(5); // 定义默认长度的数据
        var arr2 = [1,2,true,null,"root"];
        console.log(arr);
        console.log(arr1);
        console.log(arr2);

        // 2. 存数据
        arr[0] = 10;
        arr[1] = 100;
        arr[2] = false;
        arr[3] = "abc";
        arr['aaa'] = "root";
        arr.push(null);
        arr[100] = "abcdefg";
        console.log(arr);
        console.log("数组长度:"+arr.length);

        // 3. 遍历数组 arr2.length 获取数组的长度(索引的最大值+1)
        for(var i=0; i<arr.length;i++){
            console.log(arr[i]);
        }
        console.log("---------------------------");
        // index 数组的索引  in 关键字  arr要遍历的数组 
        for(var index in arr){
            console.log(arr[index]);
        }

        // 4. 删除
        delete arr['aaa'];
        console.log(arr);
    </script>
</head>
<body>
    
</body>
</html>
  1. 函数
    相当于java中的方法
    使用函数
    1. 定义函数
    2. 调用
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 1. 定义无参无返回值
        function func1(){
            console.log("无参无返回值");
        }
        // 调用
        func1();

        // 2. 有参无返回值
        function func2(name,age){
            console.log(name+":有参无返回值:"+age);
        }
        // 调用
        func2("root",18);

        // 3. 无参有返回值
        function func3(){
            return "root";
        }
        // 调用
        var str = func3();
        console.log(str);

        // 4. 有参有返回值
        function func4(name,age,sex){
            var obj = {
                name: name,
                age: age,
                sex: sex
            }
            return obj;
        }
        // 调用
        var o = func4("小冰冰",18, "未知");
        console.log(o);
        // 5. 匿名函数
        var ff = function(){
            console.log("匿名函数");
        }
        // 调用
        ff();
    </script>
</head>
<body>
    
</body>
</html>
  1. 日期对象
    Date 日期对象:
    创建对象:var date = new Date()
    常见函数:
    date.getFullYear() 获取年
    date.getMonth() 获取月
    date.getDate(); 获取日
    date.getHours() 获取时
    date.getMinutes() 获取分
    date.getSeconds() 获取秒
  2. 数学对象
    Math 对数值操作对象
    常见函数
    console.log(Math.round(i)); // 四舍五入
    console.log(Math.ceil(i)); // 向上取整
    console.log(Math.floor(i)); // 向下取整
    console.log(Math.random()); // 随机数 [0,1)
    console.log(Math.max(10,3)); // 获取最大值
    console.log(Math.min(10,5)); // 获取最小值
    console.log(Math.abs(-10)); // 获取绝对值
  3. String
    String 字符串
    定义:
    var str = “”;
    var str1 = new String("")
    常见函数:
    str.length; 获取字符串长度
    str.startsWith(""); 是否以某个字符开头
    str.endsWith(""); 是否以某个字符结尾
    str.substring(起始索引,结束索引); 截取字符串
    str.substr(起始索引,截取长度); 截取字符串
    str.split(""); 拆分字符串 返回数组

事件

  1. 单击事件 onclick
  2. 双击事件 ondblclick
  3. 内容改变事件 onchange
  4. 鼠标获取和失去事件 onmouseover onmouseout
  5. 键盘抬起和按下事件 onkeydown onkeyup
  6. 获取和失去焦点事件 onfocus onblur
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 1. 点击弹框
        function tan(){
            // 1. 弹对话框 alert()  停止   
            alert("弹框");
        }

        // 双击弹框
        function doubleTan(){
            // 2. 弹输入框  
            // prompt(参数1,参数2);    返回输入框中输入的值(字符串)
            // 参数1:提示信息  参数2:输入框的默认值
            var str = prompt("请输入你的启蒙老师","");
            console.log(str);
        }
        // 内容改变执行
        function getValues(){
            // 1. 根据id获取标签元素
            var inp = document.getElementById("inp");
            console.log(inp.value);
        }

        // 鼠标获取事件
        function getDiv(){
            // 1. 获取标签对象
            var d1 = document.getElementById("d1");
            d1.style.backgroundColor = "green";
        }
        // 鼠标失去事件
        function setDiv(){
            // 1. 获取标签对象
            var d1 = document.getElementById("d1");
            d1.style.backgroundColor = "blue";
        }

        // 键盘按下事件
        function down1(){
            console.log("键盘按下了");
        }

        // 键盘抬起
        function up1(){
            console.log("键盘抬起了"); 
        }

        // 失去焦点
        function getFocus(){
            console.log("获取焦点");
        }

        // 失去焦点

        function setBlur(){
            console.log("失去焦点");
        }
    </script>
</head>
<body>
    <button onclick="tan()">点击弹框</button>
    <button ondblclick="doubleTan()">双击</button>
    <input id="inp" type="text" onchange="getValues()"/>
    <div id="d1" onmouseover="getDiv()" onmouseout="setDiv()" style="width: 100px; height: 100px; border: 1px solid yellow;">

    </div>

    <input type="text" onkeydown="down1()" onkeyup="up1()"/>
    <input type="text" onfocus="getFocus()" onblur="setBlur()" />


</body>
</html>

常见弹框

  1. 弹提示框
    alert(提示信息) 特点:该函数执行页面停止 点击确定后继续执行
  2. 弹输入框
    prompt(提示输入信息,输入框默认中) 返回值:输入框输入的内容 内容类型是String类型
  3. 弹警告框
    confirm(警告信息) 返回值:boolean

DOM

标签元素操作

  1. 获取(查询)
    1. 根据id获取元素
      document。getElementById(“id值”);返回整个标签元素
    2. 根据class获取元素 document.getElementsByClassName(“class值”); 返回HTMLCollection
    3. 根据标签名获取元素
      document.getElementsByTagName(“标签名”);返回HTMLCollection
    4. 根据标签的name属性 获取元素
      document.getElementsByName(“name值”); 返回 NodeList
  2. 创建标签(增)
    创建元素标签
    document.createElement(“标签名”); 返回当前创建标签
    指定位置
    标签元素.appendChild(创建标签); 追加到某个标签的最后
    父标签.insertBefore(创建标签,参照标签); 指定位置插入
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 创建img标签 并且加载图片
        function showImg(){
            // 1. 创建标签
            var body = document.getElementsByTagName("body");
            var img = document.createElement("img");  // 返回标签元素
            var b = document.getElementsByTagName("button");
            img.src = "images/1.jpg";
            // 2. 指定位置
            // body[0].appendChild(img);  // 将img追加到body的最后
            body[0].insertBefore(img, b[0]);  //  参数1:创建的元素  参数2:参照物
        }
    </script>
</head>
<body>
    <button onclick="showImg()">点击按钮显示图片</button>
</body>
</html>
  1. 删除标签
    ① 获取要删除的标签元素
    ② 标签元素.remove(); 自己删除自己
    父标签.removeChild(子标签); 通过父标签删除子标签
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 删除的函数
        function deleteE(){
            // 1. 获取img 
            var imgs = document.getElementsByTagName("img");
            var bodys = document.getElementsByTagName("body");
            // 2. 删除标签
            // imgs[0].remove(); // 自己删除自己  
            bodys[0].removeChild(imgs[0]);
        }
    </script>
</head>
<body>
    <img src="images/smile.gif" /><br />
    <button onclick="deleteE()">点击删除img</button>
    
</body>
</html>
  1. 修改标签
    要修改标签元素.parentNode.replaceChild(修改后的标签,要修改的标签)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 修改标签
        function changeE(){
            // 1. 创建修改后的标签
            var h3 = document.createElement("h3");
            var h2s = document.getElementsByTagName("h2");
            // 2. 修改
            h2s[0].parentNode.replaceChild(h3, h2s[0]);

        }
    </script>
</head>
<body>
    <h2>首页</h2>
    <button onclick="changeE()">点击修改h2为h3</button>
</body>
</html>
标签中属性的操作
  1. 标签元素.属性名 = 值;
  2. 标签元素.setAttribute(“属性名”,“属性值”);
    标签元素.getAttribute(“属性名”); // 获取属性值
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        function changeBook(num){
            // 1. 获取操作的元素
            var img = document.getElementsByTagName("img")[0];
            if(num==1){
                // img.src = "images/dog.jpg";
                img.setAttribute("src","images/dog.jpg"); 
                console.log(img.getAttribute("width")) ;  
            }else{
                img.src = "images/mai.jpg";
            }
        }
    </script>
</head>
<body>
    <button onclick="changeBook(1)">点击显示第一本书</button>
    <button onclick="changeBook(2)">点击显示第二本书</button><br />
    <img src="" width="200">
</body>
</html>
标签中内容的操作
  1. 获取双边标签中的内容
    标签元素.innerHTML // 获取标签中的所有内容(包括文本和子标签)
    标签元素.innerText // 获取标签中的文本内容
  2. 获取input 中的内容
    标签元素.value
标签中样式的操作
  1. 标签元素.style.样式名 = 样式值 // 一个一个样式设置
  2. 标签元素.setAttribute(“class”,“值”); // 将一个class选择器样式设置
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .xx{
            width: 300px;
            height: 300px;
            border: 1px solid pink;
            background-color: red;
        }
    </style>
    <script>
        function changeStyle(){
            // 1. 获取div 
            var d1 = document.getElementById("d1");
            // d1.style.backgroundColor = "yellow";
            // d1.style.display = "inline-block";
            // d1.style.fontSize = "20px"

            d1.setAttribute("class","xx");
        }
    </script>
</head>
<body>
    <div id="d1">
        哈哈
    </div>
    <button onclick="changeStyle()">点击改变样式</button>
</body>
</html>

BOM(对浏览器操作)

windows对象的使用
  1. window对象的子对象
    1. document 操作元素标签
    2. History 页面历史记录
    3. Location对象 浏览器访问的地址 相当于a
    4. Navigator 包含了浏览器的相关信息
    5. Screen 浏览器屏幕信息
  2. 使用window可以省略
    window.document // 获取document对象
    window.alert() // 弹提示框
    window.prompt() // 弹输入框
    window.comfirm() // 弹警告框
  3. 定时器
    1. 一次性定时器 window可以省略
      创建定时器:var id =window.setTimeout(“action1()”, 3000);
      参数1:执行的动作 参数2:时间
      清除定时器:window.clearTimeout(id);
      参数:定时器对象
    2. 循环定时器
      ① 创建定时器
      setInterVal(“间隔时间执行的动作”,间隔时间单位ms);
      ② 清除定时器
      clearInterVal(定时器对象);
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script>
      var id;
      function tan3() {
        // 1. 创建定时器(一次性定时器)
        id = window.setTimeout("action1()", 3000); // 参数1:执行的动作  参数2:时间
      }

      function action1() {
        alert("点我干啥");
      }

      function clear1() {
        // 2. 清除定时器
        window.clearTimeout(id);
      }
      var dd;
      function showClock() {
        // 1. 创建循环定时器 参数1:执行的动作 参数2:时间间隔 单位:ms
        dd = window.setInterval("getTime1()", 1000);
      }
      
      function getTime1() {
        var date = new Date();
        var year = date.getFullYear();
        var month = date.getMonth() + 1;
        var day = date.getDay(); // 当周的第几天
        var d = date.getDate();
        var hours = date.getHours();
        var minutes = date.getMinutes();
        var seconds = date.getSeconds();
        // console.log(hours+":"+minutes+":"+seconds);
        var str =year +"年" +month + "月" +d +"日" +" " +hours +"时" +minutes +"分" + seconds +"秒";
        document.getElementById("d1").innerHTML = str;
      }
      var flag = true;  // 默认时钟动起来的
      
      function stopClock(){
            var inp = document.getElementById("inp");
            if(flag){
                // 2. 清除循环定时器 参数:定时器对象
                clearInterval(dd);
                // 按钮的状态改变
                inp.value = "点击启动时钟";

                flag = false;
            }else{
               // 启动 时钟
               showClock();
                // 按钮的状态改变
                inp.value = "点击停止时钟";
                // 改变标记
                flag = true;
            }       
      }
    </script>
  </head>
  <body>
    <button onclick="tan3()">点击三秒弹框</button>
    <button onclick="clear1()">清除一次性定时器</button>
    <div id="d1"></div>
    <input onclick="showClock()" type="button" value="点击显示时钟" />
    <input id="inp" onclick="stopClock()" type="button" value="点击停止时钟" />
  </body>
</html>
History
  1. history.forward();页面前进
  2. history.back();页面后退
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        function forword1(){
            window.history.forward(); // 前进
        }

        function back1(){
            window.history.back(); // 后退
        }
    </script>
</head>
<body>
    <button onclick="forword1()">前进</button>
    <button onclick="back1()">后退</button>
    <a href="https://www.baidu.com">点击去百度</a>
</body>
</html>
location
  1. 页面刷新
    window.location.reload(); // 刷新
  2. 实现页面跳转
    location.href = “路径”;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        function forword1(){
            window.history.forward(); // 前进
        }

        function back1(){
            window.history.back(); // 后退
        }

        function flush1(){
            window.location.reload(); // 刷新
        }

        function jump1(){
            window.location.href = "12-bom定时器.html";
        }

    </script>
</head>
<body>
    <button onclick="forword1()">前进</button>
    <button onclick="back1()">后退</button>
    <a href="https://www.baidu.com">点击去百度</a>

    <button onclick="flush1()">点击刷新当前页面</button>

    <button onclick="jump1()">点击跳转页面</button>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值