面试总结——javascript

1.常用的ES6语法

这个可以根据自己的开发经验回答,常用的就是:let和const、箭头函数、promise、解构赋值、map、import、模板字符串、函数默认参数、object.create()、module.exports、class定义类、

2.JSON字符串和对象之间的互相转换

JSON对象转字符串:JSON.stringify()

JSON字符串转对象:JSON.parse()

3.Generator和Promise原理

4.写一个方法实现 12345678 变成 12,345,678

5.写一个方法实现 1348888888 变成 134****8888

6.CSS预处理器和后处理器

css预处理器是一种编程语言,是在css的基础上增加了一些编程特性,将CSS作为目标生成文件,常用的有Less、Sass、stylus

css后处理器是对css进行处理,并最终生成css预处理器,它属于广义上的css预处理器,例如:css压缩工具(clean-css),Autoprefixer(以Can I Use上的浏览器支持数据为基础,自动处理兼容问题)

7.数组都有哪些遍历方法以及特性

  • forEach
  • map
  • filter
  • some
  • every
  • for of
  • reduce

     

  • for、for...in、for...of、forEach的区别

for循环是我们在遍历时常用的方法,用来遍历数组

for...in不仅能遍历数组,还能遍历对象,但是在遍历对象时,输出顺序不固定,与被遍历的对象中属性的顺序无关;使用for in遍历不仅能遍历对象上的属性,还能遍历原型上的属性,所以不适合遍历数组;for in十分适合遍历稀疏数组,for循环遍历次数是数组长度,er使用for in的话,只遍历有值的长度

forEach  为遍历对象的每一个有效元素提供一个回调函数,参数依次为:当前值,当前值的索引值,对象本身;该方法也能遍历原型上的属性

for...of(ES6)用来遍历数组及类数组,解决了ES5中三种遍历的缺陷:

         forEach 不能break 或者return;for-in 的缺点更加明显。它不仅遍历了数组中的元素,还遍历了自定义属性,甚至连原型链上的属性都被访问到。

虽然for...of解决了一些缺陷,但是他不能遍历普通对象,普通对象使用for...in遍历

  • map方法返回一个新数组,数组中每一个元素为原数组元素调用回调函数处理后的结果

特点:不会改变原数组;不会检测空数组

  • filter是将数组中不符合条件的元素去掉,并返回一个新数组
var arr = [1,2,3,4,5,6,7];
var newArr = arr.filter((item,index,array)=>{
    return(index>3);
});
console.log(newArr);//[5,6,7]
  •  some是对数组中的数组进行判断,一项为true,则返回true,类似于或运算;every则类似于与运算
  • reduce用来计算数组各项数值之和;
let arr = [1, 2, 3, 4],
    sum = arr.reduce((prev, curr, index, arr) => {
        return prev + curr;
    });
;
console.log(sum);   // 10

1- prev 第一项的值或者是上一次的叠加的结果值(这个值可以手动设置)
2- curr 当前会参与叠加的项
3- index 当前的索引
4- 数组本身

8.为什么箭头函数不能作为构造函数

  1. 匿名函数不能作为构造函数
  2. this指向问题,箭头函数只能指向定义时的上下文
  3. 不绑定arguments,取而代之用rest参数
  4. 没有原型属性
  5. 箭头函数不能当做Generator函数,不能使用yield关键字

9.nodejs中间件

10.能否手写一些简单的排序算法

11.如何将两个升序的数组合并成一个升序的数组并返回

12.call、apply、bind有什么区别

 

13.如何实现只能服务端修改cookie而浏览器端禁止修改cookie

了解HttpOnly

14.如何解决跨域

常用cors和jsonp,但是jsonp只支持get请求

15.如何判断一个值的类型是数组还是对象

Object.prototype.toString.call(arr);

可以通过instanceof、constructor

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值