前端面试总结(js弱类型,本地存储,array方法,扁平化多维数组)

1.写出下列输出: (1)var 0 += '   3',输出: 3 (2)var a = 0 + '3',输出: 3

正确答案:(1)0 3,(2)03

解析:被一个普遍的说法给误导了,字符串在进行运算时,会自动的转化为数字。减、乘、除会转,但是加不会,加是进行字符的拼接

3. 本地存储

cookie:比较古老的本地存储方式,储存小,只有4k,而且cookie值会发送给服务器,浪费宽带

localstorage和sessionstorage

好处:缓存数据,减少宽带浪费。

缺点:只能存储字符串,如果存储的是对象或者数组需要转化。例子如下:

var person = {name:”vanida”,”sex”:”girl”,”age”:25}; 

localStorage.setItem(“person”,JSON.stringify(person)); 

// localStorage.person=”{“name”:”vanida”,”sex”:”girl”,”age”:25}” 

注意:JSON.stringify()中不要忘了“i”,stringify而不是stringfy! 

然后取出person的对象你可以用JSON.parse(); 

person = JSON.parse(localStorage.getItem(“person”));

localstorage存储特点:永久性存储,除非手动清除

sessionStorage存储特点:会话式存储,刷新或者关闭页面,数据就会被清除掉

4. 扁平化多维数组

一个多维数组,转化为单个数组,忘了之前在哪里看到的,使用for循环可以,但是实际写的时候,for循环实现不了,用递归实现:

flatArray (oldArray) {

          for(let i = 0; i

              if(typeof oldArray[i] === 'object') {

              this.flatArray(oldArray[i])

          } else {

              console.log(oldArray[i])

              this.newArray.push(oldArray[i])

          }

          }

      }

5. JS都有哪些数据类型

Undefine、NULL 、数值、字符串、Symbol、 Boolean、函数对象、数组对象、其它任何对象

6.用过哪些JS库,这些库有哪些优点

7. ES6数组操作函数有哪些

join() //为数组里面的项添加连接符,默认为逗号

push()和pop()//添加和删除数组末尾一项

shift() 和 unshift()//添加删除数组头部一项

sort()//排序,默认为降序,可以写一个方法控制,compare,如果返回-1,前面的值放在前面

reverse()//翻转数组

concat()//拼接数组

slice()//返回指定范围内的数组,返回值为一个新数组

splice()//插入和删除,返回删除的数组

indexOf()和 lastIndexOf() (ES5新增)//查找指定值的下标,两个函数表示从头和从尾查找

forEach() (ES5新增)//为数组里的每一项添加一个处理函数,无返回值

map() (ES5新增)// 遍历数组,返回函数处理过的数组

filter() (ES5新增)//过滤数组,返回过滤的结果数组

every() (ES5新增)//判断数组里的项是否符合条件,全部符合返回true

some() (ES5新增)//判断数组里的项是否有符合条件的,有的话返回true

reduce()和 reduceRight() (ES5新增)//实现迭代数组的每一项,从头开始

8.左边固定右边自适应布局//实现迭代数组的每一项,从尾开始

html:

CSS:

.left{

with: 100px;

min-height: 100px;

float: left;

}


.main{

margin-left: 100px;

min-height: 100px;

}

10:

你可能感兴趣的:(前端面试总结(js弱类型,本地存储,array方法,扁平化多维数组))