前端JS专题面试题:

1.JavaScript如何创建,添加,移除,查找节点.

            创建: element.cloneNode() : 克隆元素./ document.createElement('div') 创建元素.添加:  element.appendChild() 追加子元素. / element.innerHTML = element  设置内部元素./element.insertBefore() 在某元素前,添加新节点.移除: parentElement.removeChild( 子element ) / 子element.parentNode.removeChild( 子element): 父元素删除子元素.查找: document.getElementById() / document.getElementsByTagName() / document.getElementsByName() / element.childNodes/element.parentNode / element.nextSibling

2.css中margin与padding的区别.

        1.元素的内边距在边框和内容区之间。控制该区域最简单的属性是 padding 属性。2.围绕在元素边框的空白区域是外边距。设置外边距会在元素外创建额外的“空白”。设置外边距的最简单的方法就是使用 margin 属性,这个属性接受任何长度单位、百分数值甚至负值。

3.JavaScript面向对象的继承是如何实现的.

js中: 主要通过原型属性,实现对象的初始化成员定义. 并可以通过原型链实现对象的成员继承.
jquery中: 提供了扩展插件的继承方法: $.extend(); 其中底层源码实现:也是通过prototype原型完成继承功能.

4.javaScript中的对象模型有哪些.

    1.BOM对象模型: window.location.history.document.2.DOM对象模型:document为根对象. 所获取到的form对象等网页元素.四种分类: document对象. Element对象.attribute对象.event对象.3.内置系统对象模型:Array,Math等.4.自定义对象模型:var obj1 = { 属性: 值, 函数名: function(){ }  };

5.javaScript编写函数去除数组重复元素.

简单方式:
function quchong(array){
var temp = []; //一个新的临时数组
for(var i = 0; i < array.length; i++){
if(temp.indexOf(array[i]) == -1){
temp.push(array[i]);
}
}
return temp;
}

var aa = [1,2,2,4,9,6,7,5,2,3,5,6,5];
temp = quchong(aa);
alert("去重结果为:"+temp);

注: 还有其他更加高效方法.

6.css3中的flexbox页面布局.

构建flexbox容器:
html:
<div class="flex-container">
<div class="flex-item ">A</div>
<div class="flex-item ">B</div>
<div class="flex-item ">A</div>
<div class="flex-item ">B</div>
</div>

css:
.flex-container{
display:flex;
width:600px;
height:230px;
background-color: #ccc;
}
.flex-item{
background-color:blue;
width: 100px;
margin: 5px;
}

备注:
属性1:
flex-direction属性,它的取值为row,column,column-reverse,row-reverse,默认值是row
默认以上容器为横向排列,设置该属性则纵向排列: flex-direction:column

属性2:
justify-content属性,对齐方式,可以取值为flex-start,flex-end,center,space-between,space-around
两端对齐: justify-content:space-between

其他属性...

7.javacript中的ES6语法特性.(例如: promise. 字符串的扩展.)

注: ES6是即将到来的新版本JavaScript语言的标准,一种新的 "语法糖".
第一点:
原JS代码:
var a = {
f1: function() {

}

};
a.f1();

新es写法:
var a = {
f1() { // 省略function关键字.

}

};
a.f1();

第二点:
原js写法:
function A{
属性: 值,
函数名: function(){
}
}

新es6写法:
class A { //可以直接定义A类.
f1(name) {
this.name = name;
}
f2() {

}

}
var a = new A();
a.f2();

第三点:
只导入该脚本中的逻辑代码执行,不导入其内部对象:
import './module1.js';
导入单个或多个对象到当前页面中:
import obj1 from './module1.js';
import {obj1, obj2} from './module1.js'

其他特性 ....

8.jquery跨域问题.

跨域请求(跨服务器): 默认js将不支持.

$.ajax({
//跨域请求类型声明:
dataType: 'jsonp',
//jsonp的值自定义,如果使用jsoncallback,那么服务器端,要返回一个jsoncallback的值对应的对象.
jsonp: 'jsoncallback',
//要传递的参数,没有传参时,也一定要写上
data: null,
});
注:该种方式: 将生成http://主机请求地址?jsoncallback=jsonp1354505244726&_=1354505244742
类似生成一个跟踪编号,跟踪两个服务器之间的请求过程.

数据库mysql/oracle专题面试题:

1.说明数据库连接池机制的原理,和使用好处.

原理:
数据库连接池的基本原理是在内部对象池中维护一定数量的数据库连接,并对外暴露数据库连接获取和返回方法。如:
外部使用者可通过getConnection 方法获取连接,使用完毕后再通过closeConnection 方法将连接返回,注意此时连接并没有关闭,而是由连接池管理器回收,并为下一次使用做好准备。
好处:
1. 资源重用
2. 更快的系统响应速度
3. 一种资源分配手段
4. 统一的连接管理,避免数据库连接泄漏
常用的连接池:
Druid(阿里的一款,维护,日志记录与监控都非常好).
c3p0,dbcp传统使用的.

2.mysql数据库的索引分类. 和使用注意.

1.FULLTEXT全文索引:目前只有MyISAM引擎支持
使用: 可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX.
限制: 目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引
好处: 为了解决WHERE name LIKE “%zhang%"这类针对文本的模糊查询效率较低的问题
2.HASH索引: key-value特性.
特点:
Hash 索引仅仅能满足"=","IN"和"<>"查询,不能使用范围> / < 查询。
Hash 索引在任何时候都不能避免表扫描。
3.B-tree树状索引:
在 Innodb里,主要是primary key主键形态.
4.唯一索引:设置unique index.
5.复合索引: 同时设置多列为index 索引形态.
建议: 对于BTREE这种Mysql默认的索引类型,具有普遍的适用性

索引使用注意规则:
建议: 以下条件相反的字段则不适合设置索引.
第一、在经常需要搜索的列上,可以加快搜索的速度;
第二、在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;
第三、在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;
第四、在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;
第五、在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;
第六、在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。

3.mysql常用函数.oracle常用函数.

Mysql :
数值函数:
POW(x,y) : x的y次方.
RAND() : 随机数0-1.
ROUND(x) : 四舍五入,取整.

日期函数:
Adddate( date1 , n ) : 将date1日期,加上n天数.注:可以为负数.
curdate()/ current_date(): 当前日期.yyyy-MM-dd
curtime()/current_time(): 当前时间: hh:mm:ss
current_timestamp() /now(): 当前日期时间: yyyy-MM-dd hh:mm:ss
date( “yyyy-MM-dd” ) : 将字符串转换为mysql中的日期对象.
datediff(date1 , date2) : 计算date1-date2 = 日期天数差.
Date_format( date1 , format2 ) : 将日期格式化.格式:%y-%m-%d

字符函数: concat(str1 , str2 ... ) : 拼接字符串.
find_in_set( ch1 , str2 ): 查找str2中ch1的位置.
insert(str1,start , len ,str2): 将str1中的strart-len的位置换成str2.
upper(str1) : 转换字符str1全部为大写.
Lower(str1) : 转换字符str1全部为小写.
trim(str1) : 去除字符串str1 的前后空格.
Substring(str1 , start , length)/substr( str1 , start , length ): 提取str1中的start-length.

Oracle:
字符函数:
CONCAT(X,Y)
trim()
REPLACE(X,old,new)
SUBSTR(X,start[,length])

数值函数:
POWER(3,4)3的4次幂
ROUND(X),四舍五入。
TRUNC(x),直接截取,不四舍五入

日期函数:
ADD_MONTHS(d,n) d日期上加上n月.
EXTRACT(fmt FROM d),提取日期中的特定部分。
fmr为:YEAR、MONTH、DAY、HOUR、MINUTE、SECOND

转换函数:
TO_CHAR(SYSDATE,'YYYY"年"MM"月"DD"日" HH24:MI:SS')当前系统时间,转换为指定日期格式字符串返回.
TO_DATE(X,[,fmt]) : 转换为日期对象.
TO_NUMBER(X,[,fmt]) : 转换为数值.

聚合函数(与mysql相同)等其他函数 ...

4.mysql存储引擎: InnoDB与MyISAM区别.

事务支持
MyISAM不支持事务,而InnoDB支持

可移植性、备份及恢复
MyISAM:数据是以文件的形式存储,跨平台的数据转移中会很方便
InnoDB:免费的方案可以是拷贝数据文件、备份 binlog,或者用 mysqldump,在数据量达到几十G的时候就废了.

锁支持:
MyISAM:只支持表级锁,用户在操作myisam表时,select,update,delete,insert语句都会给表自动加锁
InnoDB:支持事务和行级锁,是innodb的最大特色. 但是InnoDB的行锁,只是在WHERE的主键是有效的,非主键的WHERE都会锁全表的

表主键
MyISAM:允许没有任何索引和主键的表存在,索引都是保存行的地址。
InnoDB:如果没有设定主键或者非空唯一索引,就会自动生成一个6字节的主键(用户不可见)

CURD操作
MyISAM:如果执行大量的SELECT,MyISAM是更好的选择。
InnoDB:如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表

外键
MyISAM:不支持
InnoDB:支持

5.drop,delete与truncate的区别.

DELETE语句执行删除的过程是每次从表中删除一行.事务中该操作方便回滚.
TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。执行速度快.
drop 不针对数据删除.针对数据表结构删除.

TRUNCATE索引和表的占用空间将恢复到初始化大小.
delete操作不会减少表或索引所占用的空间
drop语句将表所占用的空间全释放掉。

注:以上总结:删除速度特点: drop > truncate > delete

转载于:https://blog.51cto.com/14185725/2368559

2019年上海地区最新JAVAEE开发面试与笔试题相关推荐

  1. 博学谷java题库判断_博学谷Java开发面试基础笔试题及答案分享

    博学谷Java开发面试基础笔试题分享:char 型变量中能不能存贮一个中文汉字?为什么?"=="和 equals 方法究竟有什么区别?静态变量和实例变量的区别?是否可以从一个 st ...

  2. 知名企业面试、笔试题

    知名企业面试.笔试题 46家中外知名企业面试题目 微软 智力题 1.烧一根不均匀的绳子,从头烧到尾总共需要1个小时,问如何用烧绳子的方法来确定 半小时的时间呢? 2.10个海盗抢到了100颗宝石,每一 ...

  3. java面试、笔试题(0815版)

    java面试.笔试题(201 1. Java基础部分 4 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 4 2.Java有没有goto? 4 3.说 ...

  4. JAVA面试、笔试题

    @[TOC]目录 JAVA面试.笔试题 @目录 一. CoreJava部分 7 1. java中有哪些基本类型? 7 2. java反射 7 3. 易错,理解题 7 4. Java有几种创建对象的方法 ...

  5. 软件开发工程师招聘笔试题面试题223套和招聘考察内容

    技术族职业发展通道\阶梯\标准(即招聘考核内容) (1) 通道 技术族分为软件研发.美术.质量管理.设计.技术支持五个职业发展通道,每个发展通道包含下列职位(具体内容请见表4-技术族发展通道职位列表) ...

  6. 某某证券大数据开发工程师招聘笔试题

    某某证券大数据开发工程师招聘笔试题 一.基础知识(单选题,每题1分,共10分) 1.实现两个远程主机之间的文件复制是用 ( D ) . A . mv B . cp C . cut D. scp 2.一 ...

  7. 国二c语言是笔试还是机,2017最新国二c语言笔试题.doc

    2017最新国二c语言笔试题 2017最新国二c语言笔试题篇1 1一个C程序的执行是从( ). A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后 ...

  8. 国二和本专业的C语言的差距,2021最新国二c语言笔试题

    2021最新国二c语言笔试题 发布时间:2021-04-24 C语言是一门通用计算机编程语言,应用广泛.下面就由第一范文网小编为大家介绍一下20xx最新国二c语言笔试题的文章,欢迎阅读. 20xx最新 ...

  9. 最新前端开发面试笔试题及答案---图片(面试题系列持续更新中)(4)

    推荐文章: VUE之VUEX常见面试题大全汇总--史上最全[vuex面试题] 前端面试题之HTML+CSS(持续更新)_勤动手多动脑少说多做厚积薄发-CSDN博客1.行内元素和块级元素?img算什么? ...

最新文章

  1. EMC全球调查显示:企业对新的安全威胁还未做好准备
  2. 中间层体系结构的好处
  3. keil 5 出现 error:  #67: expected a } 错误解决
  4. arduino 入门套件_计算机视觉入门套件
  5. Blazor VS 传统Web应用程序
  6. 13个不可不知的ASP.NET MVC扩展点
  7. 转:c#委托事件实现窗体传值通信
  8. 一台机器起多个filebeat_全自动多色丝印机一台多少钱?
  9. python methodtype_Python的实例定属性和方法或类绑定方法
  10. native 真机测试react_react-native真机调试出现Failed to install all
  11. Go在招聘中最吃香,安全工程师薪资涨幅最高 | 软件工程师年度报告出炉
  12. 修改系统启动项 grub2配置的方法 ubuntu[转]
  13. Caffe for Python 官方教程(翻译)
  14. [译]PEP 342--增强型生成器:协程
  15. AV1 解码器 dav1d
  16. 自我保护第一课加密与防破解
  17. vivado修改下载器下载速率
  18. 第五篇 应用Java
  19. linux 文件名 自动补全,用Linux自动补全怎么补全命令?
  20. 使用蓝牙连接设备显示无法连接的解决方案

热门文章

  1. plsql 往视图传参数_我们可以将参数传递给SQL中的视图吗?
  2. 字节跳动面试真题:java高级编程考试题及答案
  3. c语言实现的optics算法,基于深度学习的光学系统设计方法
  4. python中的real是什么意思_为什么“1.real”语法错误,但“1 .real”在Python中有效?...
  5. python中prime_在AP中查找第一个元素,该元素是Python中给定Prime的倍数
  6. bash 脚本_实用的 bash 自定义脚本,快速提效工作流程
  7. useState使用和原理
  8. java 找序列最小值_【C++编程练习】任意给定 n 个有序整数,求这 n 个有序整数序列的最大值,中位数和最小值...
  9. 计算机二级 java和web_2016计算机二级web程序设计判断题及答案
  10. 20210308 20210309 :链表类题目合集