js面试题

1、let、var、const区别

1、作用域不同,var是函数作用域,而let是块作用域
2、 let不能在定义之前访问该变量,但是var是可以得。
3、 let不能被重新定义,但是var是可以的。
4、const:它用于创建一个不可变变量。

2、js 算法,判断一个数组中的数字出现多少次
let arr = [11, 11, 2, 2, 5, 5, 5, 5, 3];
//创建一个map,把每个数字和其个数相对应
let countObj = {};
for (i = 0; i <= arr.length - 1; i++) {
    let v = arr[i];
    if (countObj[v]) {
        countObj[v]++;
    } else {
        countObj[v] = 1;
    }
}
// console.log(countObj); //{ '2': 2, '3': 1, '5': 4, '11': 2 }
for (let key in countObj) {
    if (countObj[key] === 1) {//判断在对象中出现为1次的是哪个属性
        console.log(key);//3...
    }
}
3、vue.$set

vue为了更加简洁,当data的数据是数组或者对象时,动态的添加或删除,视图将不会更新

4、http状态码有哪些?分别是什么意思?
image.png

1(信息类):表示接收到请求并且继续处理
100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息
2
(响应成功):表示动作被成功接收、理解和接受
200 OK 正常返回信息
201 Created 请求成功并且服务器创建了新的资源
202 Accepted 服务器已接受请求,但尚未处理
3(重定向类):为了完成指定的动作,必须接受进一步处理
301 Moved Permanently 请求的网页已永久移动到新位置。
302 Found 临时性重定向。
303 See Other 临时性重定向,且总是使用 GET 请求新的 URI。
304 Not Modified 自从上次请求后,请求的网页未修改过。
4
(客户端错误类):请求包含错误语法或不能正确执行
400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
401 Unauthorized 请求未授权。
403 Forbidden 禁止访问。
404 Not Found 找不到如何与 URI 相匹配的资源。
5**(服务端错误类):服务器不能正确执行一个正确的请求
500 Internal Server Error 最常见的服务器端错误。
503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)。

5、ES6中新增了什么?

1、定义变量加入了 let const
2、封闭空间 {} 避免全局污染
3、字符串和变量的拼接 ${ }
4、解构赋值 ...
5、箭头函数
6、## map和reduce

数组中新增了map和reduce方法。

map

map():接收一个函数,将原数组中的所有元素用这个函数处理后放入新数组返回。

举例:有一个字符串数组,我们希望转为int数组

let arr = ['1','20','-5','3'];
console.log(arr)

arr = arr.map(s => parseInt(s));

console.log(arr)
image

reduce

reduce():接收一个函数(必须)和一个初始值(可选),该函数接收两个参数:

  • 第一个参数是上一次reduce处理的结果
  • 第二个参数是数组中要处理的下一个元素

reduce()会从左到右依次把数组中的元素用reduce处理,并把处理的结果作为下次reduce的第一个参数。如果是第一次,会把前两个元素作为计算参数,或者把用户指定的初始值作为起始参数

举例:

const arr = [1,20,-5,3]

没有初始值:

image

指定初始值:

image

Set,本质与数组类似。不同在于Set中只能保存不同元素,如果元素相同会被忽略。跟java很像吧。

6、js箭头函数和普通函数的区别

1、this指向不同
(1)普通函数中的this:
在简单调用中,非严格模式下,指向window。严格模式下,为undefined。
箭头函数没有自己的this,内部this的值,依赖于外部非箭头函数的this。

2、构造函数
(1)普通函数
普通函数可以作为构造函数来用,用new去新建对象实例。
(2)箭头函数
不能当做构造函数去用,并且,会报错。

3、隐式return
(1)普通函数

用return去返回一个函数的结果。无return语句,或者return后面无表达式,则返回undefined。
(2)箭头函数

如果函数仅有一个表达式,那么该表达式的结果会被隐式返回

7、 判断JS数据类型的四种方法

1、typeof
2、instanceof
instanceof用来判断A是否为B的实例,表达式为:A instanceof B,如果A是B的实例,则返回true,否则返回false。instanceof检测的是原型,内部机制是通过判断对象的原型链中是否有类型的原型。
3、constructor


image.png
8、调用接口的方法
image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容

  • 1.js当中有哪些数据类型 5个基础:字符串,布尔,数值,null,undefined,1个复杂:Object在e...
    林不羁吖阅读 255评论 0 0
  • 数据类型 NumberStringbooleanSymbolundefinednullBigIntObjectAr...
    人在胖天在看_640c阅读 692评论 0 15
  • 1. setTimeout输出值的时候,如何实现i按序输出? 问:为什么输出的是10个10? 答:JS是一个单线程...
    逸軒阅读 313评论 0 1
  • 一、js面试题 JavaScript 中的 this 究竟指向谁,箭头函数的 this 有什么不同 普通函数thi...
    落魂灬阅读 890评论 0 11
  • 1、原型、原型链 原型:js中一切皆对象,对象都有一个隐式的属性_proto_,它指向该对象的原型-prototy...
    筑梦踏实_臻阅读 3,928评论 0 7