1、var a=[0];
if(a){
console.log(a==true);
}else{
console.log("wut");
}
结果输出是什么
答案:false
解:a==true 相当于 Number(a)==Number(true), 而 Number([0]) 是 0,Number(true) 是 1
2、CSS 属性能够设置盒模型的内边距为上 10px 、下 20px 、左 30px 、右 40px 的合并写法 ____.
答案:padding:10px 40px 20px 30px;
3、当块级元素设置 box-sizing:border-box 属性时,该块级元素的 width 包含哪几个部分
答案:border、padding、width
4、列举出 3 个 JS 中的基本数据类型。
答案:Number、Null、Undefined、String、Boolean
5、input 的 type 属性值列举 3 个.
答案:text、button、radio、checkbox、file、email、password、submit
6、移动浏览器中,触摸一下屏幕会依次触发哪些事件.
答案:touchstart、touchmove、touchend、touchcancel
7、'5'+3 等于 ____ , '5'-3 等于 ____.
答案:53 2
8、常见的浏览器端的存储技术有哪些
答案:
cookie
localStorage
sessionStorage
indexDB
userData:IE 中
9、非严格模式下写出下面表达式结果
parseInt("123a")=____.
答案:123
10、var a=[1,2,3,4,5];
a.splice(1,3,5,2,1);
console.log(a);
a 的输出结果 ____.
答案:[1,5,2,1,5]
11、简述 css 中 position 属性为 absolute 和 relative 的区别。
答案:
absolute: 相对于最近的设置了相对定位的父元素进行定位,脱离了文档流
relative: 相对于浏览器窗口进行定位,没有脱离文档流
12、简述 domready 和 onload 事件的区别? 图片的 onload 和 domready 和页面 onload 的先后顺序,并简述原因。【掌握】
答案:dom 文档加载的步骤为:
1. 解析 html 结构
2. 加载外部脚本和样式表文件
3. 解析并执行脚本代码
4.dom 树构建完成 // DOMContentLoaded
5. 加载图片等外部文件
6. 页面加载完毕 // window.onload
DOMready 是 DOM 数加载完毕开始执行
onload 是所有脚本、图片等各种资源加载完毕才执行
所以:先 domready 然后 img 的 ready 最后 window 的 ready。
13、描述一个你在实际项目中有用过什么比较好的布局方式 (不拘泥于页面整体布局,页面中某一小版块也行),深入讲解下其中的原理
答案:传统盒模型、flex 弹性布局
14、Ajax 是什么? Ajax 的交互模型? 同步和异步的区别? 如何解决跨域问题
答案:
1、AJAX 是异步 JS 和 XML
2、主要用来实现客户端与服务器端的异步通信,实现局部刷新
创建请求调用对象 XMLHttpRequest 对象,创建 http 请求以及对应的请求方法、参数,
通过 window.open 方法和 window.send 方法发起请求,设置请求的状态响应函数,绑定 xhr,
即 xhr.onreadystatechange,监听状态码,成功时操作响应文本即可。
3、同步和异步的区别:
同步:必须等到当前内容完成才能执行以后的内容;
异步:在执行当前内容时,不必等待,直接执行之后的内容。
4、跨域问题:首先明白同源:域名、端口、协议都相同才是,否则就涉及到跨域问题。
解决跨域:
动态创建 script 标签,利用其 src 属性获取 JS 脚本,JS 脚本中的内容是函数调用,其参数是服务器返回的数据,在页面上事先定义好回调函数。利用 AJAX 从服务器获取数据,在回调函数中处理服务器返回的数据,即将其传递给 JS 脚本的函数调用。
15、简述 instanceof 和 type 的区别
简述 []instanceof Object 的值和原因
答案:
instanceof:检查当前对象是否是某个对象的实例
typeof:检查某个值是哪个基本类型
[] instanceof Object 的值:true
原因:数组是 Array 的实例,而 Array 是 Object 的实例
16、编写一个函数 isMerge,判断一个字符串 str 是否可以由其他两个字符串 part1 和 part2"组合" 而成。"组合" 的规则如下:
1). str 中的每个字母要么来自于 part1,要么来自于 part2;
2). part1 和 part2 中字母的顺序与 str 中字母的顺序相同。
例如:
"codewars" 由 "cdw" 和 "oears" 组合而成:
s: c o d e w a r s = codewars
part1: c d w = cdw
part2: o e a r s = oears
完成函数:
function isMerge(s, part1, part2) {
//code here
}
答案:
- function isMerge(s, part1, part2) {
- if (part1.length == 0 || part2.length == 0) {
- return s == (part1 || part2) ? true: false;
- }
- var arr1 = [],
- arr2 = [];
- if (part1 && part2) {
- arr1 = part1.split('');
- arr2 = part2.split('');
- for (var i = 0; i17、编写请给Array本地对象增加一个原型方法,它用于删除数字数组中重复的数字(可能有多个),返回值是一个包含被删除的重复条目的新数组
- 答案:Array.prototype.delRep = function() {
- if (this.length <= 1) {
- return [];
- }
- this.sort(); //记得一定要排序啊啊啊啊啊····
- var arr = [this.shift()];
- for (var i = 0; i18、【编程题】
- 小S,小L,小P,小R和小H五个人排队站在一个出售'克隆可乐'的自动贩卖机前;队伍中除了他们五个没有其他人。队形如下:
- 小S,小L,小P,小R,小H
- 队列的第一个人(小S)买了一听可乐,喝下去后变成了两个小S!然后两个小S心满意足的站到了队伍的最后。此时队形变成了这样:
- 小L,小P,小R,小H,小S,小S
- 然后队列中下一个人(小L)也买了听可乐,喝下去后变成两个人,站到了队伍最后。以此类推。例如小P第三个喝了克隆可乐,之后队伍变成这个样子:
- 小R,小H,小S,小S,小L,小L,小P,小P
- 请问第n个喝这个饮料的人是谁?
- 答案:
- function getNth(arr, n) {
- if (n <= arr.length) {
- return arr[n - 1];
- }
- var temp = '';
- while (n > 0) {
- temp = arr.shift();
- arr.push(temp);
- arr.push(temp);
- n--;
- }
- return temp;
- }
来源: http://www.2cto.com/kf/201708/669364.html