前端面试(二)

162 阅读1分钟

1.写一个function清除字符串前后的空格:

if(!String.prototype.trim){
    String.prototype.trim=function(){
        return this.replace(/^\s+/,"").replace(/\s+$/,"");
    }
}
function fntrim(str){
    return str.replace(/^\s+/,"").replace(/\s+$/,"");
}

2.position包含哪几种属性?以及每个属性的特点?

  • position:relative;相对定位:不影响元素本身特性;不会是元素脱离文档流;相对于吱声原本位置进行偏移;提升层次,用z-index可以改变一个定位元素的层级关系(z-index只能在position值为relative或absolute或fixed的元素上有效)
  • position:absolute;绝对定位:是元素完全脱离文档流;使内联元素设置宽高的时候支持宽高;相对于最近一个有定位的父元素偏移;相对定位一般配合绝对定位使用。
  • position:fixed;固定定位:相对于浏览器窗口进行定位的。
  • position:static;默认值。

3.JS中this的工作原理?

  • this总是指向它的直接调用者
  • 如果没有找到直接调用者,则this指向window
  • 遇到return,如果返回的是对象,则this指向返回对象,否则指向函数示例
  • 使用call/apply/bind绑定的,this指向绑定对象
  • 箭头函数,this指向外层最近的调用者。箭头函数在调用时,不会生成自身作用域下的this和arguments;不像普通函数一样在调用时自动获取this,二十沿着作用域链向上查找,找到最近的外部一层作用域的this,斌获取。
  • 改变this指针指向:(1)new(2)call/apply/bind

4.利用@media screen实现网页布局的自适应,判断媒体类型,执行不同的css样式属性,min-width:设置最小分辨率大小,max-width设置最大分辨率的大小。