‘壹’ linux经常问的面试题有哪些
1、如何查看系统内核的版本
这里有两种方法:
1) uname -a
uname 这个命令是用来打印系统信息的, -a 可以打印系统所有信息,其中包含内核版本,比如我的版本号是3.10.0-957.21.3.el7.X86_64。
2)使用 ss 命令
现在也有很多人用 ss 命令,ss 一般用于转储套接字统计信息。它还可以显示所有类型的套接字统计信息,包括 PACKET、TCP、UDP、DCCP、RAW、Unix 域等。这里可以用 ss -lntpd
7、如何查看某个进程对 CPU 的使用情况
1) 可以使用 top 命令
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
2) 使用 ps 命令
ps aux 可以显示所有使用者的进程,最常用的方法是ps aux,然后再利用一个管道符号导向到grep去查找特定的进程。比如查看nginx 进程可以用
18、Linux里如何来做挂载
这里主要考的是 mount 命令,用于挂载Linux系统外的文件。
只输入 mount命令可以查看所有系统已经挂载的文件。
如果想挂载一个新的文件,比如将 /dev/hda1 挂在 /mnt 之下,可以用
19、如何查看一些你不太熟悉的命令
这里要考大家的是使用 man 命令。对某个 Linux的命令不熟悉,可以用 man <命令 >,系统会返回该命令的一个非常详细的手册,来帮助大家使用。
‘贰’ 服务器硬件面试问什么
1、用逻辑们和cmos电路实现ab+cd。
2、用一个二选一mux和一个inv实现异或。
3、给了reg的setup,hold时间,求中间组合逻辑的delay范围。
4、如何解决亚稳态。
5、用verilog/vhdl写一个fifo控制器。
6、用verilog/vddl检测stream中的特定字符串。
‘叁’ 程序员面试的时候考官一般问什么问题(比较流行的)
给你提供点参考信息,希望能帮助到你:
1、使用相同的工具和时间限制模拟面试训练
Google和微软都会让应聘者在白板上手工解答编程问题,但通常大部分的应聘者都是习惯于在电脑上利用编程工具系统编写程序。因此面试的时候,某些应聘者离开了熟悉的电脑光标,站在白板前感觉手足无措不知该如何起行。又或者他们不习惯在编程之时旁边有人观看,这会让他们感到紧张而无法正常思考。
在现实生活中,如果你想要横渡英吉利海峡,自然不能总是在室内游泳池练习。你必须投身于大海在波涛之中训练,在准备面试的时候也是如此。
在面试开始之前你最好向招聘单位询问面试形式和面试问题。如果招聘单位让你在某个房间考试且仅提供没有汇编程序的编辑器,那么就应该在家中按照这种情景进行练习。如果招聘公司单位让你在白板上回答问题并会安排考官在旁监督,那么你就要找一位软件工程师来扮演考官配合你练习。即使找来的考官经验不如你也没有关系,他们依然能帮助你消除在他人面前出错所带来的紧张感,这样可以让你适应有人在旁边盯着看的面试氛围。
如果你恰巧认识我并希望由我来帮你联系,那我的条件就是必须请我吃饭:如果你已经工作了就吃日本寿司大餐;如果你还是学生,那么吃比萨饼也可以。
2、在面试过程中不要对细小错误耿耿于怀
我曾不止一次的在面试过程中碰到这种情况:当应聘者知道编程问题后,他马上就想到了最佳的方案、确定了边界条件,然后开始编写程序。但在编写过程中,应聘者犯了诸如首先检查是不是操作顺序错误或忘记设定某变量等无关大局的小错误,当我指出其错误之后,应聘者立刻变得十分紧张,这种焦虑情绪影响了他在后面环节的正常发挥。
其实这种恐惧心理完全不必要。一名优秀的程序员在编程过程中出现错误也是很正常的,就像是小提琴手在演奏高难度的巴赫交响乐时也会偶尔失误。音乐会的听众可能会觉察到这些错误,但是听众绝对不会因为这种细小失误就把出色的小提琴手看作是门外汉。
即便应聘者彻底搞砸了某个编程问题,面试考官也可能会提出不同的问题并会容忍应聘者在某个问题上的失误。再退一步说,就算某次面试彻底失败,你也有机会在其它面试上补救。
我的一位同事(一个项目的技术负责人)最近面试了一个人,在开始面试时他觉得面试者的交流方式存在问题,因此开始表现的相当不友好。但经过了整个面试过程后,面试者证明了自身的能力,而我的那位同事也成了那位面试者最坚定的支持者。在过去的一年中,我从未见过这位同事如此强烈的支持哪位面试者。
所以,因此就算面试进展不顺,也务必坚持到底不要放弃。
‘肆’ 在国企面试中,计算机维护岗位面试会问什么
不管是企业单位还是事业单位,计算机维护岗位的岗位职责和技术要求是一样的,所以在考试或面试时,都会涉及到以下问题:
一、自我介绍,然后简单介绍自己的优点和特长。 命题意图:考查语言表达能力以及能否全面、客观地评价自己。
二、如果被录用为计算机维护人员,将如何开展工作?
命题意图:考查计划组织能力
答案要点:1、正确认识自己的角色和职责,制定适宜的工作计划;2、增强责任心,认真开展计算机维护工作。一是对整个单位的计算机系统的安全性进行检查;二是定期开展服务器维护,操作系统、网络系统的安全补丁、漏洞检测及修补、病毒防治等工作;3、实时监控整个局域网的运转,掌握与外部网络的连接配置,发现问题及时解决;4、积极协助各部门解决计算机使用过程中遇到的技术问题;严格恪守保密制度,不得擅自泄露各种信息与资料。
三、什么是计算机病毒,如何有效地防治?
命题意图:考查专业技术能力
答案要点:计算机病毒是编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码被称为计算机病毒(Computer Virus)。具有破坏性,复制性和传染性。
防治:1. 提高计算机用户的病毒防范意识;2.安装防火墙以及病毒监控软件,并且经常更新和升级这些软件;3.经常查找操作系统及其他系统软件的漏洞,并且经常更新和升级这些软件;4.经常用杀毒软件全面扫描计算机的所有硬盘分区,查找潜伏的病毒,特别是对移动存储设备,在连接到计算机后首先就是进行病毒扫描。5.不要浏览不健康的网站并且从上面下载内容;6.不要打开那些来历不明的电子邮件;7.定期备份数据
四、简述网络的功能,网上邻居和浏览器有什么不同。
命题意图:考查专业技术能力
答案要点:计算机网络的基本功能是实现计算机之间的通信和资源共享。资源共享有细分为硬件共享、软件共享、判据共享。 网上邻居在计算机连接到网络后可以显示计算机所连接的网络上的所有计算机、共享文件夹、打印机的资源从而使得本地计算机可以和其他计算机进行通信以及使用网络上其他计算机的共享资源。浏览器即WEB客户端程序,WEB文档在客户端被浏览器解释成网页页面,用户要浏览WEB页面必须在本地计算机上安装浏览器软件。
希望我的回答可以帮到您哦
‘伍’ 2020年Web前端面试题汇总(一)
今天小编要跟大家分享的文章是关于2020年Web前端面试题汇总。由于内容较多小编分开为大家介绍,今天首先来和小编一起看一看第一部分的内容,希望这些面试题能够对正准备找Web前端相关工作的小伙伴们有所帮助。
1.说几条写javaScript的基本规范?
1)不要在同一行声明多个变量;
2)请使用===/!==来比较true/false或者数值;
3)使用对象字面量替代newObject这种形式;
4)减少使用全局函数,全局变量;
5)switch语句必须带有default分支;
6)if语句必须使用大括号;
7)for-in循环中的变量;
应该使用var关键字明确限定作用域;
从而避免作用域全局污染。
2.说说平衡二叉树?
平衡二叉搜索树(Self-balancingbinarysearchtree)
又被称为AVL树。
具有以下性质:
1)它是一棵空树或它的左右两个子树
的高度差的绝对值不超过1,
并且左右两个子树都是一棵平衡二叉树。
2)平衡二叉树必定是二叉搜索树,反之则不一定。
3)平衡二叉树的常用实现方法有红黑树、AVL、
替罪羊树、Treap、伸展树等。
最小二叉平衡树的节点的公式如下:
F(n)=F(n-1)+F(n-2)+1备注:1是根节点,
F(n-1)是左子树的节点数量,
F(n-2)是右子树的节点数量。
3.清除浮动和解决垂直外边距重叠的解决方案?
问题描述:
1)父元素没有设置宽高,尺寸由子元素撑起;
子元素一旦浮动,父元素高度会发生塌陷。
2)子元素设置margin-top会作用的父元素的margin-top;
此时会造成垂直外边距重叠。
.clearfix::after,.clearfix::before{
content:''
display:table;
clear:both;
}
4.sessionStorage、localStorage和cookie?
相同点:
都用于浏览器端存储的缓存数据;
不同点:
1)存储内容是否发送到服务器端
当设置了Cookie后,数据会发送到服务器端,
造成一定的宽带浪费;xxxstorage则会将数据保存
到本地,不会造成宽带浪费;
2)数据存储大小不同
Cookie数据不能超过4K,适用于会话标识;
xxxstorage数据存储可以达到5M;
3)数据存储的有效期限不同
cookie只在设置了Cookid过期时间
之前一直有效,即使关闭窗口或者浏览器;
sessionStorage,仅在关闭浏览器之前有效;
localStorage,数据存储永久有效;
4)作用域不同
cookie和localStorage是在同源同窗口中
都是共享的;
sessionStorage不在不同的浏览器窗口
中共享,即使是同一个页面;
5.判断一个单词是否是回文?
回文是指把相同的词汇或句子,
在下文中调换位置或颠倒过来,
产生首尾回环的情景,
叫做回文,也叫回环。
比如cacac,redivider。
letcheckPalindrom=(str)=>{
returnstr===
str.split('').reverse().join('');
}
6.不借助临时变量,进行两个整数的交换?
输入a=3,b=1,
输出a=1,b=3
letswap=(a,b)=>{
b=b-a;
a=a+b;
b=a-b;
return[a,b];
}
7.请写出至少5个html5新增的标签,并说明其语义和应用场景?
section:定义文档中的一个章节;
nav:定义只包含导航链接的章节;
header:定义页面或章节的头部;
它经常包含logo、页面标题和导航性的目录。
footer:定义页面或章节的尾部;
它经常包含版权信息、法律信息链接和反馈建议用的地址。
aside:定义和页面内容关联度较低的内容,
如果被删除,剩下的内容仍然很合理。
8.get和post请求在缓存方面的区别?
get请求类似于查找的过程,用户获取数据,
可以不用每次都与数据库连接,所以可以使用缓存。
post不同,post做的一般是修改和删除的工作,
所以必须与数据库交互,所以不能使用缓存。
因此get请求适合于请求缓存。
9.如何解决异步回调地狱?
promise、generator、async/await
10.图片的懒加载和预加载?
预加载:提前加载图片,
当用户需要查看时可直接
从本地缓存中渲染。
懒加载:懒加载的主要目的
是作为服务器前端的优化,
减少请求数或延迟请求数。
两种技术的本质:
两者的行为是相反的,
一个是提前加载,
一个是迟缓甚至不加载。
懒加载对服务器前端有一定
的缓解压力作用,
预加载则会增加服务器前端压力。
11.bind,apply,call的区别?
通过apply和call改变函数的this指向,
这两个函数的第一个参数都是一样的,
表示要改变指向的那个对象,
第二个参数,apply是数组,
而call则是arg1,arg2...这种形式。
通过bind改变this作用域
会返回一个新的函数,
这个函数不会马上执行。
12.js怎么控制一次加载一张图片,加载完后再加载下一张?
方法一:
varobj=newImage();
obj.src="#/21.jpg";
obj.onload=function(){
document.getElementById("pic")
.innnerHTML="
}
‘陆’ 运维工程师面试:给你1000台服务器,你将如何管理面试官最想得到的答案是什么
应该没有标准答案,主要是看你的逻辑思维。1000台有主次的吧,要成几类,哪些需要经常维护的,哪些是需要几天几周或几月维护的。主要是你给出一个逻辑性强的,相对完整的方案,这没有标准的,你连自已都不满意的答案,面试官肯定也不满意了。1000台你想想可能是让你一个人管理吗,是给你配备多少人,还是让你一个人具体去维护,要把前题问清,或你假定一定的条件,提出你的一个设想性方案。就OK了~~
‘柒’ 2020年Web前端面试题及答案汇总
今天小编要跟大家分享的文章是关于2020年Web前端面试题及答案汇总。正准备参加Web前端面试的小伙伴们来和小编一起看一看吧,希望本篇文章能够对大家有所帮助。 ‘捌’ 面试网络维护工程师会被问到哪些问题 -物理层 物理层定义了设备接口上的一些电子电气化的标准,比如RJ45接口,光纤接口。传输介质双绞线,无线,光,电。等 --数据链路层 二层定义了一个重要的表示,MAC地址,准确的说他必须在一个LAN内是唯一的。他又48位的十六进制组成,前24位是厂商表示,后24位 是厂商自定义的序列号。有时候 MAC地址就是表示了一个设备的位置。 --网络层 网络层是用来逻辑上选路寻址的,这一层最重要的一个协议就是IP协议。基于ip 又分为 ARP,RARP,ICMP,IGMP等 --传输层 这一层定义类了 两个重要的协议 TCP和UDP 。还有就是端口号的概念。这一层关联的是一个主机上的某个程序或者是服务。比如 tcp 80 的web服务 udp 4000的QQ 程序等。 --会话层 主要作用是建立会话和管理会话。我一般这样理解 会话的 比如 telnet 一台主机,是一次会话的链接。打开网络的网页,就和网络的服务器建立了一次会话。 --表示层 因为底层传输的是二进制,应用层无法直接识别。所以根据这一层的名字可以直接理解为他是一个翻译。比如把一长串的数据“翻译”成rmvb格式,交给上层的 快播 这个程序,把另一串数据“翻译成”MP3格式交给 音乐播放器。其实这一层的工作很多。 --应用层 为用户提供了一个可以操所的界面,如windows的桌面化或UNIX的字符界面。 OSI七层的每一层是独立工作的,但是层与层之间是相互“合作”“兼容”的关系。 1.2 [三层交换和路由器的不同] 虽说三层交换机和路由器都可以工作在三层,但本质上还是有所区别。 一 在设计的功能上不同 现在有很多的多功能路由器,又能实现三层的路由功能,包括NAT地址转换。有提供了二层的端口,有的还配置了无线功能。再有就是还具备防火墙的功能。但是你不能它单独的划分为交换机或者是防火墙吧。只能说是个多功能的路由器。防火墙二层交换只是他的附加功能。三层交换也一样,主要功能还是解决局域网内数据频繁的通信,三层功能也有,但不见得和路由器差很多。 二 应用的环境不同 三层交换的路由功能比较简单,因为更多的把他应用到局域网内部的通信上,主要功能还是数据的交换 路由器的主要功能就是选路寻址,更适合于不同网络之间,比如局域网和广域网之间,或者是不同的协议之间。 三 实现方式不同 路由器能够实现三层的路由(或转发) 是基于软件的实现方式,当收到一个数据包要转发的时候,要经过查看路由表,最长匹配原则等一系列复杂的过程最终实现数据包的转发,相比三层交换效率略低。而三层交换是基于硬件的方式实现三层的功能,他成功转发一个数据包后,就会记录相应的IP和MAC的对应关系,当数据再次转发是根据之前的记录的表项直接转发。这个过程成为“一次路由,多次交换”。 总之,三层交换和路由器的最大区别是路由器可以基于端口做NAT,而三层交换机不能。路由器直接接入光纤可以直接上网,而三层交换机不能。主要是三层交换机的每一个接口都有专有的MAC地址和特定的ASIC集成电路。 . 1.3 [静态路由和动态路由的区别] 静态路由特点 静态路由是管理员手工配置,精确。但是不够灵活,是单向性的。考虑到静态路由稳定,节省资源(内存,cpu,链路带宽)。在网络TOP不是很大的环境中常用。 动态路由的特点 动态路由的好处就是路由器本身通过运行动态路由协议来互相学习路由条目,在大型的网络环境中,一定程度上减少了工程师的工作量。动态路由协议分为很多种,IGP和EGP,IGP中根据工作的原理分为链路状态型和距离矢量型的。但是不管哪一种动态协议,他都要经过以下几个过程。 1.“说话” 向其他的路由器发送路由信息 2.“收听” 接收其他路由器发来的路由信息 3.“计算”不同的动态路由协议有不同的算法,每种路由协议通过自己特有的算法把收到的路由信息计算,得出最好的路由条目,加载到路由表中。 4.“维护” 维护路由表,当TOP发生变化的时候,及时的更新自己的路由表,并发送变更的消息 在生产环境下,应当更具不同的网络规模,选择不同的路由协议。 1.4 [描述一下ACL和NAT] ACL:acl访问控制列表是用来制定规则的一种机制。他用来告诉路由器那些数据包访问那些资源是允许的,那些是拒绝的。他可以分为两种方式,一是标准的访问控制列表,只能基于源地址进行限制。而是扩展的访问控制列表,他不仅可以基于源地址和目标地址进行过滤,还可以根据端口来进行限制。ACL的工作原理就是读取数据包的三层和四层,和访问控制列表中的条目进行匹配,如有相符的,直接按照策略(允许或拒绝),不在往下匹配。如没有匹配的条目则按照默认规则。 NAT:nat网络地址转换,是为了解决ipv4地址空间不足产生的。 Nat的原理就是替换掉数据包中的源ip+端口或目标ip+端口,以达到私有地址不能再公网上传播的这种情况,或者是局域网中服务器的发布。Nat一定程度上提高了局域网用户的安全性。 实现方式大概可以分成 静态NAT,动态NAT PAT(端口复用) 1.5 [描述一下VLAN] VLAN 是为了避免二层出现广播风暴给大面积用户带来影响,所采取的一种手段。 Vlan 带来的好处 减少广播风暴 提高一定的安全 简化网络的管理,有易于故障排查 Vlan 是把局域网进行逻辑上的分割,实现方式有两种 1.静态vlan 基于端口的vlan (常用) 2.基于MAC地址的vlan (适合于移动用户) Vlan之间的通信需要配置TRUNK链路(中继) 封装模式有两种 Isl 思科私有的技术,在数据帧的头部和尾部添加30字节的标示符 Dot1q 通过 在mac地址后面打标记的方式 标识vlan 共4个字节 公有协议 1.6 [RIP和OSPF的区别] 两者都属于IGP协议,rip是典型的距离矢量动态路由协议。Ospf是链路状态型的协议 Rip是整张路由表进行广播更新(v2是组播),学习未知的路由条目,有存在环路的情况 并且没有邻居表,网络收敛速度比较慢。因为有环路的缺陷,不适合较大的网络使用。 Ospf组播更新,并且只有TOP发生变化的时候才出发更新,把收到更新的路由会放置在LSDB中,并生成路由。Ospf本身没有环路的产生,并且是有分层的结构,而rip是平面的没有层次化。所以ospf比rip收敛速度快。在NBMA网络中还会有DR和BDR的概念,促进了ospf的收敛。 Rip 管理距离 120 ospf 管理距离 110 1.7 [解释以下术语的意思] LAN 本地局域网 WAN 广域网 VLAN 虚拟局域网 WLAN 无线局域网 VPN 虚拟专用网 AD 管理距离,用来衡量不同路由协议生成去往同一目标的可信值 Metric 度量值,用来判断同一种路由协议生成去往同一目标的优先级 1.8 [简述一下stp是什么] Stp 生成树协议。 一个良好的网络应该要考虑到链路的冗余,比如二层的交换机做冗余,来防范单点故障带来的问题。但是二层做冗余的话会带来一些问题: 1.广播风暴,因为二层对未知数据帧的处理是进行广播,而且二层的封装结构又不像三层那样有TTL 的机制来防护。所以一旦广播风暴产生,其他的交换机就会跟着广播,造成链路的堵塞瘫痪。 2.MAC地址的重复。因为二层的工作原理,会造成交换机对一个MAC的多次重复的去学习,造成不必要的资源浪费,直到设备瘫痪 3.MAC地址表的不稳定,因为要重复去学习一些地址。造成转发效率缓慢。 二层环路带来的后果是严重的 ,stp协议就是在冗余的环境下,逻辑上去DOWN掉一个借口,打破环路的产生,同时做到冗余。当环境变化时,会自动跳转down的接口。 1.9 [STP计算的过程] 1.选择根网桥 2.选择根端口 3.选择指定端口 4.指定阻塞端口 2.0 [描述一下HSRP] 热备路由协议 是Cisco私有的网关冗余协议。它是由一组路由器(最低2台)构成的一个热备组 作用是为用户提供一个不间断的网关ip,用户通过这个ip访问互联网,即使真实的网关设备DOWN掉一台,也不会影响客户的正常工作。 原理: 热备组中包含4中路由器的角色, 活跃路由器:负责承载发往虚拟ip地址的流量,是真正转发用户数据流量的路由器, 同时向UDP1985发送hello包 表明自己的状态,一个组中只有一台 备份路由器:监听整个HSRP组的状态,是成为下一个活跃路由器之前的状态,一个组中只有一个 同时向组中发送 其他路由器:静听整个HSRP组的状态,是备份路由器的候选者 虚拟路由器:为客户端提供一个虚拟的ip和MAC 能够然活跃路由器转发。 当活跃路由器Down后 备份路由器收不到hello包 就会成为活跃路由器。而这个转换的过程用户是感觉不到的。 ‘玖’ 去面试网络管理员,面试官会问哪些问题专业和非专业的
问题一:“请你自我介绍一下”
一、MySQL数据库
1.MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义?
答案:
Varchar是变长字符串,最多存储的大小是65535字节,查询速度相对较慢;Char
是定常字符串,最多存储的大小是255字节,查询速度相对较快;
varchar(50)表示:Mysql4.0表示存放50个字节,5.0存放50个字符。
2.简述浏览器打开#显示页面,中间都经过哪些过程?
答案:
向DNS服务器获取域名对应的IP地址并返回浏览器,通过IP地址向Web服务器发请求,Web服务器从文件服务器获取网页中所需要的文件,从数据库服务器获取网页中所需要的数据,最后讲完整的网页相应给浏览器。
3.如何解决MySQL中存储中文乱码问题?
答案:
脚本文件采用UTF8编码
客户端连接数据库使用UTF8编码
服务器端创建数据库使用UTF8编码
4.Float和Double的区别是什么?
答案:
FLOAT(单精度浮点数)类型数据可以存储至多8位十进制数,并在内存中占4字节。
DOUBLE(双精度浮点数)类型数据可以存储至多18位十进制数,并在内存中占8字节。
5.把数据id等于1的名字oldboy更改为oldgirl?
答案:
updatetestsetname='oldgirl'whereid=1;
6.如何登录mysql数据?
答案:
mysql-uroot。
二、JS基础
1.continue和break有什么区别?
答案:
break和continue都是用来控制循环结构的:
break终止循环,跳出循环体执行循环后面的语句。
continue跳过本次循环,执行下一次循环。
2.i++和++i的区别?
答案:
i++:先用i值后加1,
++i:先加1后用i值,
计算:varn=5;求varnum=n+++++n+n+++++n+n;//37
3.JavaScript都有哪些数据类型?
答案:
原始类型:数值型/字符串型/布尔型/undefined/null
引用类型:对象
4.自调用函数是什么?用于什么地方?
答案:立即执行的函数。(function(){//函数体})();
用于创建一个局部作用域。
5.slice和splice有什么区别?
答案:
slice截取子数组,从指定的数组中,截取几个连续的元素组成一个新数组
splice允许从指定数组中,删除一部分元素,同时再添加另一部分元素
6.typeof返回的类型有哪些?
答案:
number、string、boolean、undefined、object、function
ex:
vararr=[1,2,3,4,5];
console.log(typeof(arr));//object
functionmyDemo(){
returnfunctiontest(){};
}
console.log(typeof(myDemo()));//function
7.取1~11之间的随机数(即包括1不包括11)?
答案:
Math.floor(Math.random()*10+1)
parseInt(Math.random()*10+1)
8.什么是变量声明提前?
答案:
使用var关键字声明的变量,会将声明提升到所在作用域的最前边。。
9.push、pop、shift和unshift区别?
答案:
这两组同为对数组的操作,并且会改变数组的本身的长度及内容。
不同的是push()、pop()是从数组的尾部进行增减,unshift()、shift()是从数组的头部进行增减。。
10.例举4种强制类型转换和3种隐式类型转换?
答案:
强制转换:parseInt/parseFloat/Number/toString
隐式转换:
字符串+数值数值转字符串
数值+布尔型布尔型中true转为1,false转为0
字符串+布尔型布尔型转为字符串。
11.函数声明与函数表达式的区别?
答案:
相同点:两者都可以创建函数。
不同点:函数声明可以存在函数提升(前),函数表达式不存在函数提升(前)。
//函数声明
functionmyFunction(){
functioninnerFunction(){}
}
//以下为函数表达式
varmyFunc=function(){};
myFunc(function(){
returnfunction(){};
});
12.请指出JavaScript宿主对象和原生对象的区别?
答案:
宿主对象:指JavaScript解释器提供的对象,由解释器厂家自定义并提供实现,不同的解释器提供的扩展对象存在较大的差异(DOM和BOM对象)。
原生对象:JavaScript语言本身预定义的对象,在ECMAScript标准中定义,由所有的解释器厂家来提供具体实现(Array,Date,Math,Number,String,Boolean等)。
13.js中有哪些内置函数?
答案:Object,Array,Boolean,Number,String,Function,Date,Math,RegExp,
Error,Global
14.列举出获取日期相关函数
答案:
console.log(Date.now());//返回当前日期和时间/01/0100:00:00'之间的毫秒值
vardt=newDate();//获取当前时间---年月日时分秒
console.log(dt.getTime());//返回当前日期和时间/01/0100:00:00'之间的毫秒值
console.log(dt.getFullYear());//年份
console.log(dt.getMonth()+1);//月份(0-11)
console.log(dt.getDate());//日期(0/1-31)
console.log(dt.getDay());//星期(0-6)
console.log(dt.getHours());//小时(0-23)
console.log(dt.getMinutes());//分钟(0-59)
console.log(dt.getMilliseconds);//返回毫秒(0-999)
console.log(dt.getSeconds());//秒(0-59)
15.Math相关函数
答案:
Math.random()-返回0~1之间的随机数
Math.abs(x)-返回数的绝对值
Math.ceil(x)-向上取整
Math.floor(x)-向下取整
Math.round()四舍五入
Math.max()和Max.min()获取一组数据中的最大值和最小值
Math.PI获取圆周率π的值Math.pow()获取一个值的多少次幂
Math.sqrt()对数值开方
Math.pow(10,2)=100;
Math.sqrt(100)=10;
16.null和undefined的区别?
答案:
undefined是访问一个未初始化的变量时返回的值,
null是访问一个尚不存在的对象时所返回的值。因此,可以把undefined看作是空的变量,而null看作是空的对象。
17.==和===有什么不同?
答案:
==抽象相等,比较时,会先进行类型转换,然后再比较值;
===严格相等,判断两个值相等同时数据类型也得相同。
18.setTimeout和setInterval的区别是什么?
答案:
二者都是用来设置定时操作的。
setTimeout:设置一个定时器,在定时器到期后执行一次函数或代码段
setInterval:设置一个定时器,以固定的时间间隔重复调用一个函数或者代码段
19.请说出以下代码执行结果
for(vari=0;i<3;i++){
setTimeout(function(){
console.log(i);
},0);
console.log(i);
}
答案:012333,执行过程如下
vari=0;
console.log(i);i++;
console.log(i);i++;
console.log(i);i++;
setTimeout(function(){console.log(i);
},0);s
etTimeout(function(){
console.log(i);
},0);
setTimeout(function(){
console.log(i);
},0);//输出012333
20.请说出(true+flase)>2+true的执行结果
答案:false
21.当前代码块输出结果是什么?
varz=10;
functionfoo(){console.log(z);}
(function(funArg){varz=20;funArg();})(foo);
答案:10,自调用函数。
22.setTimeout(function(){},10)表示什么意思?
答案:每隔10毫秒调用一次函数。
23.程序中捕获异常的方法?
答案:
try{
}catch(e){
}finally{
}
24.以下代码执行结果?
varuname='jack'
functionchange(){
alert(uname)//?
varuname='lily'
alert(uname)//?
}
change()
答案:undefinedlily
25.如何使用npm下载express模块?
答案:npminstallexpress
26.split和join的区别?
答案:split()将字符串按照指定的字符分割成一个数组,并返回
join()将数组用指定的字符连接成一个字符串,并返回
27.看下列代码会有什么样的输出?
varfoo="11"+2-"1";
console.log(foo);
console.log(typeoffoo);
答案:111number
28.foo=foo||bar,这行代码是什么意思?为什么要这样写?
答案:这种写法称之为短路表达式
相当于:
varfoo;
if(foo){
foo=foo;
}else{
foo=bar;
}
常用于函数参数的空判断
29.用js实现随机选取10_100之间的10个数字,存入一个数组,并排序
答案:
functiongetRandom(istart,iend){
variChoice=iend-istart+1;
returnMath.floor(Math.random()*iChoice+istart);
}variArray=[];
for(vari=0;i<10;i++){
varresult=getRandom(10,100);
iArray.push(result);
}iArray.sort();
30.如何获取javascript三个数中的最大值和最小值?
答案:Math.max(a,b,c);//最大值
Math.min(a,b,c)//最小值
31.实现冒泡排序?
vararray=[5,4,3,2,1];
vartemp=0;
for(vari=0;i
for(varj=0;j
if(array[j]>array[j+1]){
temp=array[j+1];
array[j+1]=array[j];
array[j]=temp;
}
}
三、NODEJS
1.同步和异步有何区别?
答案:
同步:指发送一个请求,需要等待返回,然后才能够发送下一个请求,有等待过程(在一个任务进行中时不能开启其他的任务)。
异步:指发送一个请求,不需要等待返回,随时可以再发送下一个请求,即不需要等待(在一个任务进行中时可以开启其他的任务)。
2.NodeJS中有哪些类型模块,文件操作用哪一个模块?
答案:
模块类型:核心模块、自定义模块、第三方模块。
文件操作:fs模块
3.对NodeJS的优点和缺点提出自己的看法?
答案:CPU密集型任务的特点是进行大量的计算,消耗CPU资源,比如计算圆周率(上千位)、对视频进行编码等,全靠CPU的运算能力
(一般用C语言,java)IO(Input/
Output)密集型任务,这类任务的特点是CPU消耗很少,大部分时间都在等待IO操作。常见的大部分任务都是IO密集型任务,比如Web应用(一般用脚本语言:python/Nodejs)。Nodejs设计思想中以事件驱动、异步、非堵塞I/O密集型为核心,他提供的大多数api都是基于事件的、异步的风格。所以非常适合处理高并发请求。此外,与Node服务器交互的客户端代码是由js语言编写的,因此客户端和服务器端都用同一种语言编写,减少了成本。
4.使用NodeJS完成登录功能(编写HTML页面和路由接口中的代码)?
答案:
HTML页面:
用户:
密码:
user.js路由
constexpress=require('express');
constpool=require('../pool.js');
varrouter=express.Router();
router.post('/login',(req,res)=>{
varobj=req.body;
var$uname=obj.uname;
if(!$uname){
res.send({code:401,msg:'unamerequired'});
return;
}
var$upwd=obj.upwd;
if(!$upwd){res.send({code:402,msg:'upwdrequired'});
return;
}
varsql='SELECT*FROMxz_userWHEREuname=?ANDupwd=?'
pool.query(sql,[$uname,$upwd],(err,result)=>{
if(err)throwerr;
if(result.length>0){
res.send({code:200,msg:'loginsuccess'});
}else{
res.send({code:301,msg:'loginerror'});
}});
});
//路由器导出
mole.exports=router;
5.什么是Nodejs?
Nodejs是一个JavaScript的运行环境,是一个服务器端的“JavaScript解释器”,用于方便高效地搭建一些响应速度快、易于扩展的网络应用。它采用事件驱动、异步编程,为网络服务而设计
思路: 1、这是面试的必考题目。 2、介绍内容要与个人简历相一致。 3、表述方式上尽量口语化。 4、要切中要害,不谈无关、无用的内容。 5、条理要清晰,层次要分明。 6、事先最好以文字的形式写好背熟。
问题二:“谈谈你的家庭情况”
思路: 1、 况对于了解应聘者的性格、观念、心态等有一定的作用,这是招聘单位问该问题的主要原因。 2、 简单地罗列家庭人口。 3、宜强调温馨和睦的家庭氛围。 4、 宜强调父母对自己教育的重视。 5、 宜强调各位家庭成员的良好状况。 6、 宜强调家庭成员对自己工作的支持。 7、 宜强调自己对家庭的责任感。
问题三:“你有什么业余爱好?”
思路: 1、业余爱好能在一定程度上反映应聘者的性格、观念、心态,这是招聘单位问该问题的主要原因。 2、 最好不要说自己没有业余爱好。 3、不要说自己有那些庸俗的、令人感觉不好的爱好。 4、 最好不要说自己仅限于读书、听音乐、上网,否则可能令面试官怀疑应聘者性格孤僻。 5、最好能有一些户外的业余爱好来“点缀”你的形象。
问题四:“你最崇拜谁?”
思路: 1、最崇拜的人能在一定程度上反映应聘者的性格、观念、心态,这是面试官问该问题的主要原因。 2、 不宜说自己谁都不崇拜。 3、 不宜说崇拜自己。 4、 不宜说崇拜一个虚幻的、或是不知名的人。 5、 不宜说崇拜一个明显具有负面形象的人。 6、所崇拜的人人最好与自己所应聘的工作能“搭”上关系。 7、 最好说出自己所崇拜的人的哪些品质、哪些思想感染着自己、鼓舞着自己。
问题五:“你的座右铭是什么?”
思路: 1、座右铭能在一定程度上反映应聘者的性格、观念、心态,这是面试官问这个问题的主要原因。 2、不宜说那些医引起不好联想的座右铭。 3、不宜说那些太抽象的座右铭。 4、不宜说太长的座右铭。 5、座右铭最好能反映出自己某种优秀品质。 6、 参考答案——“只为成功找方法,不为失败找借口”
问题六:“谈谈你的缺点”
思路: 1、不宜说自己没缺点。 2、 不宜把那些明显的优点说成缺点。 3、 不宜说出严重影响所应聘工作的缺点。 4、 不宜说出令人不放心、不舒服的缺点。 5、 可以说出一些对于所应聘工作“无关紧要”的缺点,甚至是一些表面上看是缺点,从工作的角度看却是优点的缺点。
问题七:“谈一谈你的一次失败经历”
思路: 1、 不宜说自己没有失败的经历。 2、 不宜把那些明显的成功说成是失败。 3、不宜说出严重影响所应聘工作的失败经历, 4、 所谈经历的结果应是失败的。 5、 宜说明失败之前自己曾信心白倍、尽心尽力。 6、说明仅仅是由于外在客观原因导致失败。 7、 失败后自己很快振作起来,以更加饱满的热情面对以后的工作。
问题八:“你为什么选择我们公司?”
思路: 1、 面试官试图从中了解你求职的动机、愿望以及对此项工作的态度。 2、 建议从行业、企业和岗位这三个角度来回答。 3、 参考答案——“我十分看好贵公司所在的行业,我认为贵公司十分重视人才,而且这项工作很适合我,相信自己一定能做好。”
问题九:“对这项工作,你有哪些可预见的困难?”
思路: 1、 不宜直接说出具体的困难,否则可能令对方怀疑应聘者不行。 2、可以尝试迂回战术,说出应聘者对困难所持有的态度——“工作中出现一些困难是正常的,也是难免的,但是只要有坚忍不拔的毅力、良好的合作精神以及事前周密而充分的准备,任何困难都是可以克服的。”
问题十:“如果我录用你,你将怎样开展工作”
思路: 1、 如果应聘者对于应聘的职位缺乏足够的了解,最好不要直接说出自己开展工作的具体办法, 2、可以尝试采用迂回战术来回答,如“首先听取领导的指示和要求,然后就有关情况进行了解和熟悉,接下来制定一份近期的工作计划并报领导批准,最后根据计划开展工作。”
问题十一:“与上级意见不一是,你将怎么办?”
思路: 1、一般可以这样回答“我会给上级以必要的解释和提醒,在这种情况下,我会服从上级的意见。” 2、如果面试你的是总经理,而你所应聘的职位另有一位经理,且这位经理当时不在场,可以这样回答:“对于非原则性问题,我会服从上级的意见,对于涉及公司利益的重大问题,我希望能向更高层领导反映。”
问题十二:“我们为什么要录用你?”
思路: 1、应聘者最好站在招聘单位的角度来回答。 2、 招聘单位一般会录用这样的应聘者:基本符合条件、对这份共组感兴趣、有足够的信心。 3、如“我符合贵公司的招聘条件,凭我目前掌握的技能、高度的责任感和良好的饿适应能力及学习能力 ,完全能胜任这份工作。我十分希望能为贵公司服务,如果贵公司给我这个机会,我一定能成为贵公司的栋梁!”
问题十三:“你能为我们做什么?”
思路: 1、 基本原则上“投其所好”。 2、 回答这个问题前应聘者最好能“先发制人”,了解招聘单位期待这个职位所能发挥的作用。 3、 应聘者可以根据自己的了解,结合自己在专业领域的优势来回答这个问题。