WEB_2019面试题_第一阶段HTML+CSS1902(全)
第一阶段面试题
一、MySQL数据库
1. MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义?
答案:
Varchar是变长字符串,最多存储的大小是65535,查询速度相对较慢;
Char 是定常字符串,最多存储的大小是255,查询速度相对较快
2. 简述浏览器打开www.codeboy.com显示页面,中间都经过哪些过程?
答案:
向DNS服务器获取域名对应的IP地址并返回浏览器,通过IP地址向web服务器发请求,web服务器从文件服务器获取网页中所需要的文件,从数据库服务器获取网页中所需要的数据,最后将完整的网页相应给浏览器。
3. 如何解决MySQL中存储中文乱码问题?
答案:
脚本文件采用UTF8编码
客户端连接数据库使用UTF8编码
服务器端创建数据库使用UTF8编码
二、JS基础
1. continue和 break有什么区别?
答案:
break和continue都是用来控制循环结构的。
- break:提前终止循环可以使用break来完成。break完全结束一个循环,跳出循环体执行循环后面的语句。
- continue:理解为continue是跳过当次循环中剩下的语句,执行下一次循环。
- 区别:continue只终止本次循环,break则完全终止循环
2. i++和++i的区别?
答案:
i++ 理解为:先用i值后加1, 比如int j=i++; 如果i的初值是1,那么表达式i++的整体值就是1,然后,i的值就变成了2,最后执行赋值运算,将i++整体的值1,赋值给j,j为1。
++i 理解为:先加1后用i值,比如int j=++i;如果i的初值是1,首先i增加1为2,然后用i的值2最为++i整体表达式的值,最后进行赋值运算,将++i表达式的值2赋值给j,j为2。
注意:这两个表达式在计算时,=号赋值计算,都是最后发生的,是非常常见的考点。
3. JavaScript都有哪些数据类型?
答案:
原始类型:数值型/字符串型/布尔型/未定义型/null 引用类型:对象
4. 自调用函数是什么?用于什么地方?
答案:
(function(){ })(); 创建一个局部作用域。
5. slice和splice有什么区别?
答案:
slice是截取字符串,splice是切割字符串。
6. typeof返回的类型有哪些?
答案:
Number string boolean undefined object。
7. 取10-100之间的一个随机数?
答案:
Math.ceil(Math.random()*90+10)。
8. 解释变量声明提升?
答案:
使用var关键字声明的变量,会将声明提升到所在作用域的最前边。。
9. push、pop、shift和unshift 区别?
答案:
这两组同为对数组的操作,并且会改变数组的本身的长度及内容。
不同的是 push()、pop() 是从数组的尾部进行增减,unshift()、shift() 是从数组的头部进行增减。。
10. 例举4种强制类型转换和3种隐式类型转换?
答案:
强制转换:parseInt/parseFloat/Number/toString
隐式转换:
字符串+数值 数值转字符串
数值+布尔型 布尔型中true转为1,false转为0
字符串+布尔型 布尔型转为字符串。
11. 函数声明与函数表达式的区别?
答案:
相同点:两者都可以创建函数。
不同点:函数声明可以存在函数提升,函数表达式不存在函数提升。
12. 请指出JavaScript宿主对象和原生对象的区别?
答案:
宿主对象:指JavaScript解释器提供的对象,由解释器厂家自定义并提供实现,故不同的解释器提供的扩展对象存在较大的差异。
原生对象:JavaScript语言本身预定义的对象,在ECMAScript标准中定义,由所有的解释器厂家来提供具体实现。
三、NODEJS
1. 同步和异步有何区别?
答案:
同步:指发送一个请求,需要等待返回,然后才能够发送下一个请求,有个等待过程
异步:指发送一个请求,不需要等待返回,随时可以再发送下一个请求,即不需要等待。
2. NodeJS中有哪些类型模块,文件操作用哪一个模块?
答案:
模块类型: 核心模块、自定义模块、第三方模块。
文件操作:fs模块
3. 对NodeJS的优点和缺点提出自己的看法?
答案:
为Node是基于事件驱动和无阻塞的,所以非常适合处理并发请求,因此构建在Node上的代理服务器相比其他技术实现的服务器表现要好得多。此外,与Node服务器交互的客户端代码是由javascript语言编写的,因此客户端和服务器端都用同一种语言编写。