前端基础面试题

一、Web前端阶段

1. HTML是什么意思?

  1. 超文本标记语言

2. 什么是HTML5?

 

  1. HTML5是最新的HTML标准。
  2. HTML5 文档定义为: <!DOCTYPE html>
  3. 新增多媒体标签: video audio
  4. 新标签 canvas header nav footer 等

3. 前端页面有哪三层构成,分别是什么?作用是什么?

 

  1. 结构层 Html 用于定义网页布局和显示内容
  2. 表示层 CSS 对html进行美化和修饰
  3. 行为层 js 对html和css动态交互和控制

4. CSS引入的方式有哪些?

 

  1. 内联 内部 外链

5. $(this) 和 this 关键字在 jQuery 中有何不同?

 

  1. $(this) 返回值为当前 jQuery 对象,可以利用这个特点,实现连续的调用方法。
  2. this 代表当前元素,它是 JavaScript 关键词中的一个,表示上下文中的执行方法的当前对象,this不能调用 jQuery 方法

6. jQuery中 append() 和 appendTo() 方法的区别是什么?

 

  1. 都被用来向元素内部追加内容。
  2. append():向每个匹配的元素内部追加内容。
  3. appendTo():把所有匹配的元素追加到另一个指定的元素元素集合中。

7. 请描述$("#p"),$(".p"),("p")分别选择到什么对象集合?

 

  1. $("#p")————#id id选择器, 选择idp唯一的元素
  2. $(".p")————.class 类选择器, 选择class包含 p 的一组元素
  3. $("p")————elelment 元素选择器, 选择全部的 <p> 元素, 是一组元素

8. JavaScript window.onload 事件和 jQuery ready 函数有何不同?

 

  1. window.onload要等待 DOM 被创建,还要等到包括大型图片、音频、视频在内的所有外部资源都完全加载。
  2. jQuery $(document).ready() 函数只需对 DOM 树的等待,而无需对图像或外部资源加载的等待,从而执行起来更快。
  3. 使用 jQuery $(document).ready() 的另一个优势是你可以在网页里多次使用它,浏览器会按它们在 HTML 页面里出现的顺序执行它们

9. jQuery 里的 each() 是什么函数?你是如何使用它的?

 

  1. each() 函数就像是 Java 里的一个 Iterator,它允许你遍历一个元素集合。
  2. 可以遍历数组或者一组jquery选择的 dom 对象。

二、数据库阶段

1. 怎么优化数据库的查询?

 

  1. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
  2. 应尽量避免在 where 子句中使用!=或<>操作符。
  3. 应尽量避免在 where 子句中对字段进行 null 值判断。
  4. 应尽量避免在 where 子句中使用 or 来连接条件。
  5. 下面的查询也将导致全表扫描:“select id from t where name like '%abc%'” 若要提高效率,可以考虑全文检索。
  6. in 和 not in 也要慎用,否则会导致全表扫描,很多时候用 exists 代替 in 是一个好的选择。
  7. 应尽量避免在 where 子句中对字段进行表达式操作。
  8. 应尽量避免在where子句中对字段进行函数操作。

2. 在数据库中条件查询速度很慢的时候,如何优化?

 

  1. 建索引
  2. 减少表之间的关联
  3. 优化sql,尽量让sql利用索引定位数据,不要让sql做全表查询
  4. 简化查询字段,没用的字段不要,已经对返回结果的控制,尽量返回少量数据
  5. 利用分页查询减少返回的数据量

3. 数据库中事务是什么,有哪些特性?

 

  1. 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序单元(unit)。
  2. 事务通常由SQL语言或编程语言发起并控制
  3. 特性:
    1. 事务是恢复和并发控制的基本单位。
    2. 事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。

4. sql语句关键词的执行顺序。

 

  1. FROM 子句, 组装来自不同数据源的数据
  2. WHERE 子句, 基于指定的条件对记录进行筛选
  3. GROUP BY 子句, 将数据划分为多个分组
  4. 使用聚合函数进行计算
  5. 使用 HAVING 子句筛选分组
  6. 计算所有的表达式
  7. 使用 ORDER BY 对结果集进行排序

5. 数据库有哪几种约束类型?

 

  1. 五种
  2. 主键约束 PRIMARY KEY
  3. 外键约束 FOREIGN KEY
  4. 唯一约束 UNIQUE
  5. 检查约束 CHECK
  6. 非空约束 NOT NULL

6. 简述数据库执行计划?

 

  1. SQL语句发送到数据库后需要翻译为执行计划,SQL语句到功能是利用执行计划执行实现的。
  2. 数据库在执行完全一样的SQL语句时候会重用相同的执行计划。
  3. 有 ?参数的SQL语言会重用相同的执行计划。

7.数据库建立索引常用的原则是什么?什么情况下不适合建立索引?

 

  1. 在大数据量的表上建立索引才有意义
  2. 在where子句或是连接条件上经常引用的列上建立索引
  3. 很少或从不引用的字段和逻辑型的字段,如男或女(是或否)等不要建立索引

三、JDBC阶段

1. 数据连接池的工作机制是什么? 有什么优点?

 

  1.  J2EE 服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。
  2.  客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。
  3.  如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。
  4.  当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。
  5. 当链接数量达到连接池最大值时候,池驱动程序将不再创建新连接,只能等等连接空闲以后重用已有的连接。

优点:连接少的时候可以服用

2. 写出JDBC连接数据库的6个步骤?

 

  1. 注册驱动
  2. 获取连接
  3. 创建一个Statement语句对象
  4. 执行SQL语句
  5. 处理结果集
  6. 关闭资源

3. JDBC中的Statement 和PreparedStatement的区别?

 

  1. PreparedStatement 继承于 Statement
  2. Statement 一般用于执行固定的没有参数的SQL
  3. PreparedStatement 一般用于执行有?参数预编译的SQL语句。
  4. PreparedStatement支持?操作参数,相对于Statement更加灵活。
  5. PreparedStatement可以防止SQL注入,安全性高于Statement。

4. 表与表之间有哪些关联关系?

 

  1. 一对一(实际上是特殊的一对多)
  2. 一对多
  3. 多对多,需要中间关系表

5. JDBC中大数据量的分页解决方法?

 

  1. 利用sql语句进行分页,这样每次查询出的结果集中就只包含某页的数据内容。
posted @ 2020-03-13 09:37  小何先生  阅读(480)  评论(0编辑  收藏  举报