• 实习面试问题整理(一)


    实习季第一次面试哇~答得挺烂的QAQ

    记录一下面试过程中遇到的一些的问题吧。(搬运工

    一、关系型数据库与非关系型数据库的区别

    关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

    关系型数据库的优点:

    • 容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解

    • 使用方便:通用的SQL语言使得操作关系型数据库非常方便

    • 易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率

    非关系型数据库提出另一种理念,例如,以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这 样就不会局限于固定的结构,可以减少一些时间和空间的开销。使用这种方式,用户可以根据需要去添加自己需要的字段,这样,为了获取用户的不同信息,不需要像关系型数据库中,要对多表进行关联查询。仅需要根据id取出相应的value就可以完成查询。

    MongoDB:

    MongoDB基于文档的存储的(而非表),是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似jsonbjson格式,因此可以存储比较复杂的数据类型。模式自由(schema-free),意味着对于存储在MongoDB数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

    Mongo主要解决的是海量数据的访问效率问题。因为Mongo主要是支持海量数据存储的,所以Mongo还自带了一个出色的分布式文件系统GridFS,可以支持海量的数据存储。由于Mongo可以支持复杂的数据结构,而且带有强大的数据查询功能,因此非常受到欢迎。

    二.js 事件代理、委托

    当要对很多元素添加事件的时候,通过将事件添加到它们的父节点而将事件委托给父节点来触发处理函数。这主要得益于浏览器的事件冒泡机制。

    通过事件代理,当事件被抛到更上层的父节点的时候,我们通过检查事件的目标对象(target)来判断并获取事件源。

    详细:http://www.cnblogs.com/owenChen/archive/2013/02/18/2915521.html

            https://segmentfault.com/a/1190000002613617

    三.js闭包

    维基百科对闭包的解释:在计算机科学中,闭包英语:Closure),又称词法闭包Lexical Closure)或函数闭包function closures),是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。闭包在运行时可以有多个实例,不同的引用环境和相同的函数组合可以产生不同的实例。

    推荐文章:http://www.cnblogs.com/frankfang/archive/2011/08/03/2125663.html

                  http://www.cnblogs.com/xiaotie/archive/2011/08/03/2126145.html

                  https://segmentfault.com/a/1190000000652891

    闭包的好处:1.希望一个变量长期驻扎在内存中 2.避免全局变量的污染 3.私有成员的存在

    四.js匿名函数

    http://www.itxueyuan.org/view/6314.html

    http://cnodejs.org/topic/5230d5f0101e574521c86ff4

    五. SVN 与 git 的区别

    分布式,分支管理。。。

    http://www.fallhunter.com/p/10613

    http://os.51cto.com/art/201104/254543.htm

    https://www.v2ex.com/t/64721

    六.grunt gulp区别

    作为对比和总结, 给出Gulp的五大优点:

    1. 使用gulp.js,你的构建脚本是代码,而不是配置文件;
    2. 使用标准库(node.js standard library)来编写脚本;
    3. 插件都很简单,只负责完成一件事-基本上都是 20 行左右的函数;
    4. 任务都以最大的并发数来执行;
    5. 输入/输出(I/O)是基于“流式”的。

    http://www.w3ctech.com/topic/74

    http://xialeizhou.com/2016/02/03/gulp%E5%92%8Cgrunt%E5%AF%B9%E6%AF%94/

    七.Ajax跨域

    https://segmentfault.com/a/1190000002438126

    http://www.clanfei.com/2012/08/1637.html

    http://www.cnblogs.com/2050/p/3191744.html

     http://www.cnblogs.com/Darren_code/p/cors.html

    八.优化问题

    http://www.csdn.net/article/2013-09-23/2817020-web-performance-optimization

    http://www.ayqy.net/blog/%E5%89%8D%E7%AB%AF%E4%BC%98%E5%8C%96%EF%BC%9A%E9%9B%85%E8%99%8E35%E6%9D%A1/#r1

  • 相关阅读:
    javascript 函数介绍
    javascript 日期对象(date)详解
    js 计算过去和未来的时间距离现在多少天?
    phpcms 模板常用标签指南
    checkbox radio 样式重写
    datatable-固定行固定列
    表格-固定列 固定行
    axios 请求数据 入门级介绍
    图片上传的问题-偶现base64图片 小黑块问题
    cropper.js图片裁剪——第二弹
  • 原文地址:https://www.cnblogs.com/HiuYanChong/p/5296569.html
Copyright © 2020-2023  润新知