2023前端面试深度解析:rem与em、Git、SQL与作用域

需积分: 5 0 下载量 70 浏览量 更新于2024-08-03 收藏 7KB MD 举报
"这是一份关于前端高级面试题目的2023年更新版文档,包含了rem与em的区别、Git常用命令、SQL语句的分类、如何创建无原型对象以及JavaScript作用域等核心知识点。" ### 1、rem与em的区别 在前端开发中,rem(root em)和em都是用于设置元素尺寸的单位,但它们的参照对象不同。rem是相对于根元素(通常是html元素)的font-size来计算的,而em则是相对于父元素的font-size来计算。例如,如果html元素的font-size设置为12px,一个div的font-size设置为2rem,那么这个div的字体大小将是24px。相反,如果在一个font-size为12px的p元素内,有一个font-size设置为2em的span,span的字体大小将被设置为24px。 ### 2、Git常用命令 Git是版本控制系统,这些命令是日常开发中常用的: - `git clone`:从远程仓库克隆项目到本地。 - `git add`:添加文件到暂存区,`.`表示添加所有改动。 - `git commit -m` 或 `git commit -a`:提交更改,-m后跟提交信息,-a表示自动添加所有修改过的文件。 - `git status -s`:简洁地显示工作区的状态。 - `git fetch`/`git merge` 或 `git pull`:拉取并合并远程分支的最新更改。 - `git reflog`:查看提交历史记录。 ### 3、SQL语句的分类 SQL语言分为四大类: - DDL(Data Definition Language):数据定义语言,包括`CREATE`、`DROP`、`ALTER`等,用于数据库结构的创建、删除和修改。 - DCL(Data Control Language):数据控制语言,如`GRANT`,用于权限管理和访问控制。 - DML(Data Manipulation Language):数据操纵语言,包括`INSERT`、`UPDATE`、`DELETE`,用于插入、更新和删除数据。 - DQL(Data Query Language):数据查询语言,以`SELECT`为主,用于检索和查询数据。 ### 4、如何创建一个没有prototype(原型)的对象? 在JavaScript中,通常每个对象都有一个原型链,但通过`Object.create(null)`可以创建一个没有原型的对象。这样做的对象不会有内置的方法,例如在上述示例中,尝试调用`o2.toString()`会抛出错误,因为`o2`没有继承任何原型的方法。 ### 5、什么是作用域? JavaScript的作用域规定了变量和函数的可见性和生命周期。主要有以下三种: - 全局作用域:在函数外部定义的变量和函数,可以在整个脚本中访问。 - 函数作用域:在函数内部定义的变量和函数仅在该函数内部可见。 - 块作用域(ES6):由`let`和`const`关键字定义的变量在它们所在的代码块内有效,而不是整个函数,这是ES6引入的新特性。 理解并掌握这些知识点对于前端开发者来说至关重要,尤其是在面试中,它们经常作为考察开发者基础和实践经验的标准问题出现。