day04 --js的常用对象、BOM对象和DOM对象

news2024/12/26 6:04:43

一、常用对象

1.1 数组

1.创建数组:
    let arr = [1,2,3]; 
    let arr = new Array(1,2,3);
    注意:JS数组不区分数据类型,而且其长度可以随意改变,因此JS数组类似于Java中的集合
​
2.数组常用方法:
    length:这是一个属性,用于获取数组长度
    forEach():遍历数组中的有值元素
    push():从尾部向数组添加元素
    splice(开始索引,删除个数):删除指定元素
<script>
    //1. 创建数据
    let arr1 = [1,2,3,"hello",new Date(),null,true];
    let arr2 = new Array("hello",5,null,false);
​
    console.log(arr1);
    console.log(arr2);
​
    //2. 打印长度
    console.log(arr1.length);
    console.log(arr2.length);
    
    console.log("---------------------------------")
​
    //3.遍历数组中的有值元素
    arr1.forEach(element => {
        console.log(element);
    });
​
    console.log("---------------------------------")
​
    //4. 遍历数组中所有元素
    for(let item of arr2){
        console.log(item)
    }
    //5. 向数组添加元素
    arr2.push(500)
    for(let item of arr2){
        console.log(item)
    }
​
    console.log("---------------------------------")
​
    //6. 从数组中删除元素
    arr2.splice(1,3)
    for(let item of arr2){
        console.log(item)
    }
</script>

1.2 字符串

1. 构造方式:
    let str = " xcx "; 双引号,单引号都行
    let str = new String("哈哈");
    
2. 常见方法:
    length: 属性,获取字符串长度
    chatAt(): 返回在指定位置的字符串
    indexOf(): 检索字符串位置
    trim(): 移除字符串首尾空白
    substring(开始,结束) 字符串截取
<script>
    //1. 创建字符串
    let str1 = " hello world ";
    let str2 = new String("好好学习");
    console.log(str1);// hello world 
    console.log(str2);//"好好学习"
    //2. 获取字符串长度
    console.log(str1.length);//13
    //3. 返回指定位置的字符串
    console.log(str1.charAt(3))//l
    //4. 检查字符串位置
    console.log(str1.indexOf("l"));//3
    //5. 删除首尾空白
    console.log(str1.trim().length);//11
    //6. 字符串截取
    let str3 = str1.substring(1,6);
    console.log(str3);//hello
</script>

1.3 数学

Math对象
    1. 四舍五入 round()
​
    2. 向下取整 floor()
​
    3. 向上取整 ceil()
​
    4. 产生随机数 random() :返回 [0,1) 之间的随机数。 [0,1) 左闭右开区间,包含0不包含1
<script>
    let n = 1234.567
    //1. 四舍五入取整
    console.log(Math.round(n));//1235
​
    //2. 向下取整
    console.log(Math.floor(n));//1234
​
    //3. 向上取整(去除小数,+1)
    console.log(Math.ceil(n));//1235
    console.log(Math.ceil(1234));//1234
    //4. 产生随机数
    console.log(Math.random());//[0,1)
​
    //5. 练习:获取一个[1,10]的随机数
    //Math.random()--[0,1)--*10--[0,10)--+1--[1,11)--向下取整--[1,10]
    console.log(Math.floor(Math.random()*10+1))
</script>

1.4 JSON

1. 概念
    JSON(JavaScript Object Notation)JavaScript对象标记法,本质是通过JavaScript对象标记法书写的文本
    JSON主要用做数据载体,在网络中进行数据传输,JSON数据的value部分,主要支持三种类型的数据:
        1. 简单类型:数字、字符串、布尔、时间、null
        2. 数组:使用 [] 表示,let studentName = ["张三","李四","王五"];
        3. 对象:使用 {} 表示,let user = {"name":"Jerry","age":18};
    
2. 转换
    JSON字符串转为JS对象:var jsObject = JSON.parse(userStr);
    JS对象转为JSON字符串:var jsonStr = JSON.stringify(jsObject);
<script>
        // 1.描述用户对象(张三丰、男、32岁)
        let user = {
            name: "张三丰",
            sex: "男",
            age: 32
        }
        console.log(user)
        console.log(user.age)
        // 2.描述用户数组(张三丰、张翠山、张无忌)
        let users1 = ["张三丰", "张翠山", "张无忌"]
        console.log(users1)
        let users2 = [
            { name: "张三丰", sex: "男", age: 32 },
            { name: "张翠山", sex: "男", age: 42 },
            { name: "张无忌", sex: "男", age: 52 }
        ]
        console.log(users2)
        // 3.描述韦小宝(27岁,老婆、师傅)
        let wxb = {
            name: "韦小宝",
            age: 27,
            wife: [
                { name: "双儿", sex: "女", age: 20 },
                { name: "单儿", sex: "女", age: 24 },
                { name: "单双儿", sex: "女", age: 22 }
            ],
            shifu:{name : "陈近南",age : 40}
        }
        console.log(wxb)
        //输出韦小宝师父的名字
        console.log(wxb.shifu.name)
        //输出韦小宝的第一个妻子
        console.log(wxb.wife[0])
    </script>

二、BOM对象

BOM(Browser Object Model )浏览器对象模型,其作用是把浏览器抽象成为一个对象模型,然后可以使用js模拟浏览器的一些功能。

 

2.1 Window

Window对象可以实现两种定时器:
​
设置定时器:setInterval(周期性任务)、setTimeout(一次性任务)
    let xxx = setTimeout(function(){
        执行的代码
    },时间间隔)
清除定时器:clearInterval     clearTimeout
    clearTimeout(xxx);
<body>
    <button id="bt1">清除timeout一次性任务</button>
    <button id="bt2">清除Interval周期性任务</button>
<script>
    // 1. 定时5秒之后在控制台打印当前时间
    let st = setTimeout(function(){
        console.log(new Date())
    }, 5000);
     //点击按钮删除延迟时间函数
    document.getElementById("bt1").onclick=function(){
        clearTimeout(st)
    }
    // 2. 每隔2秒在控制台打印递增自然数
    let index = 0
    let si = setInterval(function(){
        console.log("index=" + index)
        index++
    },2000)
    //点击按钮删除间隔时间函数
    document.getElementById("bt2").onclick = function(){
        clearInterval(si)
    }
</script>
</body>

2.2 Location

Location对象指的是浏览器的地址栏,它的主要作用是:使用href属性完成地址的获取和跳转

<body>
<button onclick="addr()">获取当前浏览器地址</button>
<br>
<br>
<button onclick="jump()"> 跳转页面(重点)</button>
​
<script>
    //1. 点击按钮,获取当前地址栏地址
    function addr(){
        console.log(location.href)
    }
    //2.  点击按钮,设置当前地址栏地址
    function jump(){
        location.href="http://www.baidu.com"
    }
</script>
</body>

三、DOM对象

DOM(Document Object Model)文档对象模型,其作用是把HTML页面内容抽象成为一个Document对象,然后可以使用js动态修改页面内容。

 

1. 获取元素(标签)对象
        document.getElementById(id属性值)
        document.getElementsByTagName(标签名)
        document.getElementsByClassName(class属性值)
        document.getElementsByName(name属性值)
   
2. 读取和设置dom对象属性
        对象.属性名
        对象.属性名=""
    
3. 读取和设置dom对象中的文本
        对象.innerHTML
        对象.innerHTML=""
<body>
    <form action="#" method="get">
        姓名 <input type="text" name="username" id="username" value="小明"/> <br/><br/>
        性别
        <input type="radio" name="gender" value="male" class="radio">男&emsp;
        <input type="radio" name="gender" value="female" class="radio"/>女<br/><br/>
        爱好
        <input type="checkbox" name="hobby" value="smoke">抽烟
        <input type="checkbox" name="hobby" value="drink">喝酒
        <input type="checkbox" name="hobby" value="perm">烫头<br/><br/>
        学历
        <select name="edu">
            <option value="0">请选择</option>
            <option value="1">入门</option>
            <option value="2">精通</option>
            <option value="3">放弃</option>
        </select>
        <br/><br/>
    
        <div id="myDiv">程序猿最讨厌的四件事:<br>自己写注释、自己写文档……</div>
    </form>
    
    <script>
        //1.获取id="username"的标签对象
        let un=document.getElementById("username");
        console.log(un)
        //2.获取class="radio"的标签对象数组
        let radios = document.getElementsByClassName("radio")
        for(let item of radios){
            console.log(item)
        }
        console.log("--------------------")
        //3.获取所有的option标签对象数组
        let options = document.getElementsByTagName("option");
        for(let item of options){
            console.log(item)
        }
        //将第二个option设置为默认勾选
        options[1].selected = true;  //或  options[1].selected = "selected";
      
        //4.获取name="hobby"的input标签对象数组
        let  hobbys = document.getElementsByName("hobby")
        for(let item of hobbys){
            console.log(item)
        }
        //将第二个hobby设置为默认勾选
        hobbys[1].checked = true; 
​
        //5. 修改姓名的值为小红
        un.value="小红";
        //6. 在上面div中的内容中添加---> <br>别人不写注释、别人不写文档……
        document.getElementById("myDiv").innerHTML += "<br>别人不写注释、别人不写文档……"
        //7. 给Div添加背景色
        document.getElementById("myDiv").style.backgroundColor = "pink"
    </script>
</body>

 

四、Ajax

概念:Asynchronous JavaScript And XML,异步的JavaScript和XML

作用:通过Ajax可以给服务器发送请求,并获取服务器响应的数据,然后在不重新加载整个页面的情况下,更新网页的部分区域

Ajax的原生语法十分繁琐,而Axios是一个封装好的ajax的框架

//axios 发送get请求 
axios.get("url").then(resp=>{
   resp.data;//返回结果
})
​
// axios发送post请求
axios.post("url",{username:"张三",age:18}).then(resp=>{
   resp.data;// axios发送post请求
})
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Ajax-Axios-发送请求</title>
      <!--1.引入axios外部js-->
  <script src="../js/axios-0.18.0.js"></script>
</head>
<body>
​
<script>
  /*
    1.引入axios外部js
    2.发起调用(get)
  */
 //resp:响应数据对象(包括后端返回的数据和响应状态等信息)
  axios.get("https://mock.apifox.cn/m1/3128855-0-default/emp/list").then(resp=>{
    //获取服务器端响应,处理
    console.log(resp.data)
  })
</script>
</body>
</html>

案例

使用Axios向指定后台发送请求,将拉取的数据渲染成HTML表格

后台的数据地址是:https://mock.apifox.cn/m1/3128855-0-default/emp/list

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Ajax-Axios-案例</title>
    <script src="../js/axios-0.18.0.js"></script>
</head>
<body>
<div id="app">
    <table border="1" cellspacing="0" width="60%" id="tab">
        <tr id="head">
            <th>编号</th>
            <th>姓名</th>
            <th>图像</th>
            <th>性别</th>
            <th>职位</th>
            <th>入职日期</th>
            <th>最后操作时间</th>
        </tr>
    </table>
</div>
​
<!--
  使用Axios向指定后台发送请求,将拉取的数据渲染成HTML表格
  后台的数据地址是:https://mock.apifox.cn/m1/3128855-0-default/emp/list
-->
<script>
    //1.页面中导入axios外部js
    //2.
    axios.get("https://mock.apifox.cn/m1/3128855-0-default/emp/list").then(res=>{
        //3.获取完整数据(获取其中的用户数组)
        let users = res.data.data
        //4.循环用户数据,每个用户构建一个tr字符串
        let trs=""
        for(let user of users){
           trs += "<tr align='center'>"
           trs +="<td>"+user.id+"</td>"
           trs +="<td>"+user.name+"</td>"
           trs +="<td><img src='"+user.image+"' width='70px' height='50px'></td>"
           trs +="<td><span>"+(user.gender == '1' ? "男" : "女")+"</span></td>"
           trs +="<td>"+user.job+"</td>"
           trs +="<td>"+user.entrydate+"</td>"
           trs +="<td>"+user.updatetime+"</td>"
           trs +="</tr>"
       
        }
        //5.将tr字符串,叠加到table中
        document.getElementById("tab").innerHTML += trs
​
    })
</script>
​
</body>
</html>

获取数据如图所示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2047724.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

以「垂直模型」引领AIGC商业化落地,FancyTech的技术路径是什么?

我们正在见证又一轮技术革新&#xff0c;这一次是 AIGC 为个体提供表达自我的工具&#xff0c;让创作变得更加容易和普及&#xff0c;但背后的推动力却并不是「大」模型。 点击访问我的技术博客https://ai.weoknow.comhttps://ai.weoknow.com 两年以来&#xff0c;AIGC 技术的发…

快速备份与检索ChatGPT对话记录,以及便捷关闭聊天历史教程

近期&#xff0c;ChatGPT 用户遭遇了一系列对话记录意外丢失的事件&#xff0c;引发了广泛的关注和不便。用户们对于重要聊天记录的安全性表示担忧&#xff0c;害怕珍贵的交流内容会不翼而飞。 令人欣慰的是&#xff0c;OpenAI 在2023年4月11日宣布推出了一项新的功能——Chat…

雨云美国二区E5v2服务器测评(非广告)

注&#xff1a;本文非广告&#xff0c;非推广 本文长期更新地址&#xff1a; 雨云美国二区E5v2服务器测评&#xff08;非广告&#xff09;-星零岁的博客https://blog.0xwl.com/13594.html 今天来测评一下雨云美国二区v2服务器。我测试的这台配置是4-8&#xff0c; 35 M上传&a…

SpringBoot教程(二十三) | SpringBoot实现分布式定时任务之xxl-job

SpringBoot教程&#xff08;二十三&#xff09; | SpringBoot实现分布式定时任务之xxl-job 简介一、前置条件&#xff1a;需要搭建调度中心1、先下载调度中心源码2、修改配置文件3、启动项目4、进行访问5、打包部署&#xff08;上正式&#xff09; 二、SpringBoot集成Xxl-Job1.…

水利机械5G智能制造工厂物联数字孪生平台,推进制造业数字化转型

在当今这个科技日新月异的时代&#xff0c;水利机械行业正经历着一场深刻的变革&#xff0c;其中5G智能制造工厂物联数字孪生平台的引入&#xff0c;无疑是推动制造业数字化转型的重要驱动力。工业物联数字孪生平台是智能制造工厂的核心组成部分&#xff0c;它基于物理世界的真…

入门mysql 数据库

mysql是关系型数据库 &#xff08;安装教程请参考主页相关文章https://blog.csdn.net/2401_86120676/article/details/141265678?spm1001.2014.3001.5502 和mysql Ubuntu安装与远程连接配置-CSDN博客&#xff09; mysql相关指令 1.数据库 展示所有的数据库&#xff1a;sho…

基于神经网络逆同步控制方法的两变频调速电机控制系统matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 神经网络a阶逆系统 4.2 两电机的数学模型 4.3 两电机系统的神经网络逆同步控制 5.完整工程文件 1.课题概述 两电机变频调速系统是一个多输入多输出非线性强耦合的控制系统。本课题使用神经网络构造…

英伟达玩转剪枝、蒸馏:把Llama 3.1 8B参数减半,性能同尺寸更强

小模型崛起了。 上个月&#xff0c;Meta 发布了 Llama 3.1 系列模型&#xff0c;其中包括 Meta 迄今为止最大的 405B 模型&#xff0c;以及两个较小的模型&#xff0c;参数量分别为 700 亿和 80 亿。 Llama 3.1 被认为是引领了开源新时代。然而&#xff0c;新一代的模型虽然性能…

(javaweb)SpringBootWeb案例(毕业设计)案例--文件上传

1.简介 前端程序和服务端程序 对于前端 html文件放在static目录下 location---文件提交的位置 右键--copy value -------------c盘目录下 2.本地上传--文件存储 1. 2. 使用uuid&#xff1a;保证文件名是唯一的 此时 并没有文件的拓展名--所以需要---写后缀 用字符串截取 此时图…

Java、python、php版的宠物美容预约服务系统的设计与实现 (源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

【报告】从 YCombinator 支持的 400 家(2023年和2024年) AI 初创公司看AI行业

这份报告对 YC 2023 年和 2024 年队列中的 417 家人工智能公司进行了广泛的分析。对于那些不知道的人来说&#xff0c;YCombinator是一个领先的初创企业加速器&#xff0c;提供种子资金、指导和资源&#xff0c;以帮助早期初创企业取得成功&#xff0c;YCombinator (YC)在发现和…

SOMEIP_ETS_044: echoUTF16DYNAMIC_with_odd_number_after_termination

测试目的&#xff1a; 验证设备&#xff08;DUT&#xff09;是否能够正确处理一个在终止符之后多出一个字节的echoUTF16DYNAMIC字符串&#xff0c;并且能够去除这个多余的字节。 描述 本测试用例旨在检查DUT在接收到一个不符合UTF16DYNAMIC字符串规范&#xff08;即在终止符…

【Python机器学习】利用PCA来简化数据——PCA

PCA&#xff08;主成分分析&#xff09;的优缺点&#xff1a; 优点&#xff1a;降低数据的复杂性&#xff0c;识别最重要的多个特征&#xff1b; 缺点&#xff1a;不一定需要&#xff0c;且可能损失有用信息&#xff1b; 适用数据类型&#xff1a;数值型数据。 移动坐标轴 如下…

【研发日记】嵌入式处理器技能解锁(四)——TI C2000 DSP的Memory

文章目录 前言 背景介绍 Memory映射 RAM ROM 外设Register Memory分配 应用实例 总结 参考资料 前言 见《【研发日记】嵌入式处理器技能解锁(一)——多任务异步执行调度的三种方法》 见《【研发日记】嵌入式处理器技能解锁(二)——TI C2000 DSP的SCI(串口)通信》 见《…

在线excel/csv转json数据

具体请访问&#xff1a;在线Csv/Excel(xls/xlsx)转Json格式工具

编程语言进化史

编程语言多到你想象不到。 图片来自: 程序设计语言概念 发展历史 自从1946年冯诺依曼原理被提出&#xff0c;计算机数据和指令是通过二进制形式以及后来的汇编语言(二进制助记符)&#xff0c;但依然没有改变容易出错的本质。1951年Rutishauser提出的用编译程序实现高级语言的思…

开放平台: 签名密钥、回调地址、ip白名单管理。

文章目录 引言I 渠道信息管理(签名密钥)表设计渠道信息管理服务商API配置导出II 签名校验兼容图片上传接口验签规则方案2III 工具类开放平台字典服务接口txt文件的下载see also引言 需求: 提供给下游的开放平台,需要对接口做签名密钥、回调地址、ip白名单管理。 涉及的功…

JS实现一键点击按钮复制文本

JS实现一键点击按钮复制文本 背景描述JS代码实现 背景描述 现在有这样一个需求&#xff0c;想要在页面实现点击按钮&#xff0c;一键复制指定列表字段内容的操作&#xff0c;就像这样的效果 复制成功之后的内容在Notepad 粘贴可以看到 正式列表中链接地址字段的内容&#xf…

【学习笔记】Day 15

一、进度概述 1、《地震勘探原理》第八、九章 二、详情 对于第八章&#xff0c;主要讨论地震资料岩性解释的基本方法&#xff0c;对于利用地震信息进行储层的物性预测于解释、储层的含油性分析与解释、地震地层学解释、层序地层学解释、地球物理资料综合解释等内容。 第五、六…

【图解秒杀系列】秒杀技术点——静态化

【图解秒杀系列】秒杀技术点——静态化 什么是静态化、静态化的作用如何实现静态化FreeMarker、Thymleaf处理流程问题 OpenResty Lualua_shared_dict & lua-resty-template处理流程具体操作 什么是静态化、静态化的作用 静态化就是指通过某种静态化技术&#xff0c;将原本…