面试 高频面试题 基础 HTML CSS JS

目录

基础

Undefined和null有什么区别 

理解JSON 

什么是作用域

什么是闭包

Js常见的垃圾回收方式是标记清除

let、var、const区别

This指向

HTML

HTML标签的嵌套规则

meta标签有什么作用 

CSS

div嵌套img时多出的空白如何解决

margin击穿问题如何解决

实现左右两边固定宽度,中间自适应的布局

JS

作用域的变量提升

bind和apply的区别

箭头函数的新特性

多次引入同一个模块,会触发几次模块的全局事件


基础

Undefined和null有什么区别

  1. Undefined 
    • 表示声明了变量没有赋值

    • Undefined不是有效JSON

    • Undefined的类型是undefined

  2. null
    • 表示一个对象的值为空,是一个空对象

    • Null是一个有效的JSON

    • Null的类型是object

理解JSON 

JSON是一个JS对象,也是一种轻量级的数据交换格式

  • JSON.Stringify() 转化成字符串
  • JSON.parse() 转化成JSON对象 

什么是作用域

JavaScript中的作用域是我们可以有效访问变量或函数的区域,是一组用于查找变量的规则,如果变量在当前作用域中不存在,它会向外部作用域中查找,直到到达全局作用域,这个查找过程叫作用域链,JS中的作用域链主要用于解析变量的值。

全局作用域

  • 在全局命名空间中声明的变量或函数位于全局作用域中,在代码的任何地方可以访问

函数作用域

  • 函数在函数中声明的变量函数和参数可以在函数内部访问,但不能在函数外部访问

块作用域

  • 在花括号中声明的变量,只能在其中访问。

什么是闭包

闭包就是有权访问一个函数内部变量的函数

  1. 函数嵌套函数
  2. 函数内部可以引用外部参数和变量
  3. 参数和变量不会被垃圾回收机制回收

Js常见的垃圾回收方式是标记清除

工作原理:当变量进入环境时,将这个变量标记为进入环境,当变量离开环境时,则将其标记为“离开环境”,标记离开环境的就回收内存。

let、var、const区别

Var没有块级作用域,支持变量提升

Let

  • 有块级作用域,不支持变量提升
  • 创建一个可变的变量

Const

  • 有块级作用域,不支持变量提升
  • 声明一个变量一旦声明不能改变

This指向

This总是代表它的直接调用者 

  • 默认情况下没有直接调用者,this指向的是window
  • 严格模式下没有直接调用者,this指向的是undefined

HTML

HTML标签的嵌套规则

  • 不乱嵌套,块级元素可以嵌套行内元素,行内元素不能嵌套块级元素
  • 标签闭合,属性小写
  • 使用外链css和js实现结构行为表现分离

meta标签有什么作用 

Meta标签提供有关页面的元信息

  • Viewport主要用于移动端,设置宽度为设备宽度
  • initial-scale:设置页面的初始缩放值
  • User-scalable:是否允许用户缩放

CSS

div嵌套img时多出的空白如何解决

产生空白的原因,img标签的display属性默认是inline

  • Div{font-size:0}
  • Img{display:block}
  • Img{vertical-align:top}
  • div{line-hight:0}

margin击穿问题如何解决

  • 父元素加边框
  • 父元素overflow:auto
  • 父元素display:flex或者display:inline-block
  • 使用绝对定位

实现左右两边固定宽度,中间自适应的布局

  •  float解决 使用左浮动和右浮动,中间设置margin
  • 绝对定位解决   使用right:0和left:0,中间设置左右margin(外边距)
  • flex解决        父元素设置display:flex,左右设置宽度,中间设置flex:1===flex:1 1 auto
  • table解决      父元素设置display:table 子元素设置为display:table-cell
  • 网格布局       父元素设置display:grid grid-template-rows //横向排列  grid-template-columns //纵向排列 

JS

作用域的变量提升

变量提升只发生在当前作用域,所有的声明都会提升到作用域的最顶端

bind和apply的区别

Bind执行函数,方便随后调用,apply和call则是立即执行。Apply传入的参数为数组。

箭头函数的新特性

  • 没有this
  • 箭头函数是匿名函数,不能作为构造函数,不能使用new
  • 箭头函数内没有arguments

多次引入同一个模块,会触发几次模块的全局事件

组件化重要的特性就是作用域隔离,一个组件拥有一个私有的作用域,当在页面中引用了该组件的时候,只有该组件实例能访问该作用域。

(持续更新)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java基础高频面试题包括以下内容: 1. 你是怎么理解面向对象的? 2. String、StringBuilder、StringBuffer的区别是什么? 3. ==与equals的区别是什么? 4. 什么是反射? 5. Java支持多继承吗? 6. 进程和线程的区别是什么? 7. 不考虑数据库的隔离性会发生什么? 8. 数据库的隔离级别有哪些? 9. 面向对象的三个基本特征是什么? 10. 访问修饰符public、private、protected以及不写时的区别是什么? 11. 给出一些代码块,判断是否能正常编译和执行。 12. 给出一些代码块,预测输出结果。 13. 如何用最有效率的方法计算2乘以8? 14. &和&&的区别是什么? 15. String是Java基本数据类型吗? 16. String类可以继承吗? 以上是一些Java基础高频面试题的例子,希望对你有帮助。 #### 引用[.reference_title] - *1* [Java基础高频面试题](https://blog.csdn.net/qsw1364941774/article/details/124499655)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Java高频面试题及答案整理(会持续更新)](https://blog.csdn.net/qq_44867340/article/details/112879620)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【吐血整理】2022年Java 基础高频面试题及答案(收藏)](https://blog.csdn.net/m0_67698950/article/details/126549157)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值