码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 面试 高频面试题 基础 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

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

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

    (持续更新)

  • 相关阅读:
    《Java 并发编程实战》—— Java内存模型:看Java如何解决可见性和有序性问题
    一文带你零基础深入理解随机变量,概率分布与统计量
    本地FTP YUM源报错处理
    【SpringCloud】微服务技术栈入门5 - ElasticSearch
    视频定格合璧,批量剪辑轻松插入图片
    直播视频录制技巧,分享2个实用的方法
    Windows下DataGrip连接Hive
    2021 ICPC澳门题解(8/11)
    【优化选址】基于matlab遗传算法求解物流配送中心选址【含Matlab源码 1917期】
    Mac 上如何安装Mysql? 如何配置 Mysql?以及如何开启并使用MySQL
  • 原文地址:https://blog.csdn.net/weixin_49739911/article/details/127658322
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号