前端面试题(实习篇)第一天内容补充

BOM里边的常见方法

BOM的意思是浏览器对象模型

1:Navigator

Navigator对象包含有关浏览器的信息,根据W3Cschool,该对象被所有浏览器所支持

  • appVersion

返回浏览器的平台和版本信息

  • userAgent

返回由客户机发送服务器的user-agent头部的值

  • userLanguage

返回OS的自然语言设置

2:History

History对象包含用户(在浏览器窗口中)访问的URL,它是window对象的一部分,可通过window.history属性来对其进行访问

  • history.go()

history.go(0)用于刷新页

history.go(-1)实现页面的后退

history.go(1)前进一步

  • history.back()

加载history列表中的前一个URL

  • history.forward()

加载history列表中的下一个URL

3:Screen
  • height

返回显示器屏幕的总高度

  • width

返回显示器屏幕的总宽

使用方法

console.log(window.screen.width)

在这里插入图片描述

4:location
<script>
        function printInfo() {
            var loc = window.location;
            console.log("host:"+loc.host);//设置和返回主机名和当前URL的端口号
            console.log("hostname:"+loc.hostname);//设置和返回当前URL的主机名
            console.log("pathname:"+loc.pathname);
            console.log("port:"+loc.port);//设置和返回当前URL的端口号
            console.log("protocal:"+loc.protocal);//设置或返回当前的URL的协议
            console.log("search:"+loc.search);//设置或者返回从问号(?)开始的URL(查询部分)
        }
    </script>

此外,使用location还可以实现页面的跳转

 <script>
	    console.log(window.location.href);//打印当前页面的网址
        function toNew(){//调用该方法就可以实现页面跳转
            window.location.href = "https://www.baidu.com";
        }
  </script> 

注:以上方法都隶属于Window对象(浏览器中打开的窗口)

5:window
  • clearInterval()

取消由setInterval()设置的timeout

<body>
    <p onclick="updateTime()">
        开始更新时间
    </p>
    <p id="timeContainer">
    </p>
    <script>
    var id;
    function updateTime() {
        id = window.setInterval(showTime,1000);//setInterval接收两个参数,第一个参数是需要调用的函数或者要执行的代码串,第二个参数是调用或执行该函数的时间间隔
    }
    function showTime(){   
    
     document.getElementById("timeContainer").innerText = new Date();
    }
</script>
</body>

也可以使用addEventListener方法

<body>
<button id="button">按钮</button>
</body>
<script>
let pcwidth=function(){
        console.log(window.screen.availWidth)
    }
   let ej= window.setInterval(pcwidth,1000)
    
    button.addEventListener('click',()=>{
        window.clearInterval(ej)
    }
</script>
  • clearTimeout()

取消由setTimeout()方法设置的timeout

<body>
    <p onclick="al()">
        单击此处4秒后弹出警告框
    </p>
    <p onclick="a2()">
        单击此处取消警告框的弹出
    </p>
    <script>
    var id;
    function al() {
        id = window.setTimeout(showAlert,4000);
    }
    function showAlert() {
        window.alert("警告框");
    }
    function a2() {
        window.clearTimeout(id);
    }
</script>
</body>
  • alert()

显示带有一段信息和一个确认按钮的警告框

  • confirm()

显示带有一段消息以及确认按钮和取消按钮的对话框

  • prompt()

显示可提示用户输入的对话框

参考:W3CSchool

Map()方法
<script>
    let arr = [1, 2, 3, 4, 5];
    // let arrTwo=arr.map(function(i){
    //     return i*2
    // })
    let arrTwo = arr.map((i) => i * 2);//这里的i表示的就是数组的每一个元素
    document.write(arrTwo);
  </script>
let arrThree = arr.map((item, index) => {
      console.log(item + "-" + index);
    });

在这里插入图片描述

["1", "2", "3"].map(parseInt);的值为什么会是`[1,NAN,NAN]

详细解答

call()

所谓方法,其实就是对象里面定义的函数

  • 对象方法中的this指向方法所属对象
var obj={
age:17,
name:'bob',
person:function(){
console.log(this.name+'现在的年龄是'+this.age+'岁')//这里的this指向obj
}
}
obj.person();//bob的年龄是17岁

  • 使用call()方法可以改变对象中方法里边this的指向,使用流程是拥有方法的对象调用call,call里面写入需要显示出来的值
var obj={
age:17,
name:'bob',
person:function(){
console.log(this.name+'现在的年龄是'+this.age+'岁')//这里的this指向obj
}
}
var objtwo={name:'xiaohui',age:'20'}
obj.person.call(objtwo)//此时person方法里边的this指向的已经不是obj,而是objtwo了
  • call()方法使用的是列表传参
let obj = {
      name: "小张",
      age: 18,
      myFun: function (money, car) {
        console.log(this.name + " 年龄" + this.age+' 存款'+money+' 代步工具 '+car);
      },
    };
    let objtwo = { name: "xiaohui", age: 22 };
    obj.myFun.call(objtwo, 5000, 'BMW');

apply()和bind()使用方法和call几乎一致,略有不同的是apply在传参给方法的时候需要使用数组的方式,使用bind需要在call()同样使用方法的基础上再加一个()来立即执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值