面试总结(CSS+JS)

本文介绍了CSS中的瀑布流实现方式,src与href的区别,以及如何判断图片是否加载完成。同时,讨论了CSS伪元素的设置和清除浮动的方法。在JavaScript部分,提到了对象合并的不同方法,检测类型的操作,以及闭包的概念和作用。此外,还涵盖了重绘和回流的区别,以及浏览器加载URL的流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

css:

1、瀑布流: ① display:flex + flex-direction:column + flex-wrap:wrap       ② column-count + column-gap

2、src和href的区别:都是用于请求资源。

href(超文本引用)用于在当前文档和引用资源之间确立联系(link、a),src将其指向的资源下载应用到当前页面(script、img),请求到的资源替换当前的内容;href浏览器会识别该文档为css文件,并行下载资源并且不会停止对当前文档的处理,(同时也是为什么建议使用 link 方式加载 CSS,而不是使用 @import 方式);src会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,将其所指向资源应用到当前内容(这也是为什么把js文件放在底部而不是头部的)

 3、判断图片是否加载完成

      ① img的complete属性;② onload事件

4、伪元素最基本的设置(::before和::after)

  • 默认display: inline;
  • 必须设置content属性,否则一切都是无用功,(默认是空字符串);
  • 默认user-select: none,就是::before和::after的内容无法被用户选中的;
  • 伪元素和伪类结合使用形如:.target:hover::after

5、清除浮动

  • 在浮动元素后使用一个空元素如,并在CSS中赋予.clear{clear:both;}属性即可清理浮动。
  • 给浮动元素的容器添加overflow:hidden;或overflow:auto
  • 什么都不做,给浮动元素后面的元素添加clear属性。
  • 给浮动元素的容器通过:after伪元素实现在元素末尾添加一个看不见的块元素(Block element)即可清理浮动

6、css选择器优先级

  •  !mportant>内联>id>class、属性、伪类>元素选择器

7、px、em和rem区别

  • px:相对长度单位,相对于屏幕分辨率
  • em:相对长度单位,相对于当前对象内文本的字体大小。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。子元素会继承父元素的字体大小
  • rem:相对于html根元素

8、重绘和回流的区别

  • 重绘:元素样式的改变(但宽高、大小、位置等不变)
  • 回流:元素的大小或者位置发生改变(当页面布局和几何信息发生改变的时候),触发了重新布局导致渲染树重新计算布局和渲染

9、标准模型和怪异模型的区分

  • 标准模型:content+padding+border+margin
  • 怪异模型:content +margin
  • 转换成标准模型:box-sizing:border-box   转换成怪异模型:box-sizing:content-bos

10、bfc(块级格式化上下文)

独立渲染的一个区域

JS:

1、对象合并的方法:

  • object.assign(target,resource),es6新增,后面覆盖之前的 
  • $extend(true,),jQuery
  • json.parse(json.stringfy) ,深拷贝
  • ...扩展运算符,es6新增
  • 递归

2、检测类型的方法

  • typeof 用来监测数据类型的运算符
  • instanceof 检测某一个实例是否属于某个类
  • constructor跟instanceof相似 可以处理基本数据类型的检测
  • object.prototype.toString.call()

3、map和forEach区别:

  • map有返回值,可以return出来
  • map会将处理结果组成一个新的数组并返回,原数组不会被修改,forEach只是遍历,可以修改原数组

4、slice:截取;  splice:拼接

5、数组方法

map、forEach、filter、reduce、find、findIndex、some、every、

6、对象方法

object.assign();object.defineproperty();object.keys();object,getOwnPropertyNames();object.value();object.is();

7、const定义的值怎么修改

const定义的基本数据类型的变量是不可以修改的,复杂类型的值是可以修改的

8、闭包

闭包的表现形式就是一个函数内部在嵌套一个函数,然后把内部函数返回,js在es6之前有一个函数级作用域,就是我们在函数外面访问不到函数内部的一些属性或方法,那么我们可以通过这种形式的话,可以在内部函数访问他,这样可以产生两个作用,一个是,形成一个暂时性的死区,在函数执行完之后不会被释放,可以做一些模块化的操作,防止全局污染,另外一个的话可以突破作用域的限制,然后在外层可以访问内层的一些属性和方法

9、防抖和节流

 10、在浏览器地址栏键入URL,按下回车之后会经历以下流程:

  • 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;
  • 解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;
  • 浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;
  • 服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;
  • 释放 TCP连接;
  • 浏览器接收该 html 文本并显示内容

11、let var const区别

  • let const是es6新增的,具有块级作用域
  • let var 用来定义变量,const用来定义常量
  • var 存在变量提升
  • var定义的变量,有全局作用域,会作为window的一个属性
  • const一旦定义,必须要赋值

const 变量指向的那个内存地址不得改动;对于引用类型的数据,变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的。至于指向的数据结构是不是可变,是不能控制的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值