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

一、常用对象

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>

获取数据如图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值