JavaScript 面试知识点总结

前端开发追本溯源就是前端三兄弟htmlcss以及js。而在面试过程中,大部分的技术型问题都会集中考验面试者对于js的掌握程度。所以我在求职的过程中去网上也找了很多关于js的面试总结。对于我个人而言,发现实际上对于单纯开发来说,基本问题是不大的,但是往往对于一些细枝末节的知识点就是记不住,感觉都是小问题,看几遍就回了,所以针对这一类问题,我自己整理了一些,现在分享给大家。

正则匹配

  • ^ 以。。。开头,
  • $ 以。。。结尾。
  • *任意多次
  • | 或的意思
  • ( )组
  • []集合

TypeOf

  • typeof Symbol() //"symbol"
  • typeof Number() //"number"
  • typeof String() //"string"
  • typeof Function() //"function"
  • typeof Object() //"object"
  • typeof Boolean() //"boolean"
  • typeof null //"object"
  • typeof undefined //"undefined"
Object.prototype.toString.call(arr) === '[object Array]';

Promise

一个promise可能有三种状态:等待(pending)、已完成(fulfilled)、已拒绝(rejected)

JavaScript RegExp

JavaScript RegExp 对象有 3 个方法:test()exec()compile()

  • test() 方法用来检测一个字符串是否匹配某个正则表达式,如果匹配成功,返回 true ,否则返回 false;

  • exec() 方法用来检索字符串中与正则表达式匹配的值。exec() 方法返回一个数组,其中存放匹配的结果。如果未找到匹配的值,则返回 null;

  • compile() 方法可以在脚本执行过程中编译正则表达式,也可以改变已有表达式。

HTTP请求报文(Request)

HTTP 请求报文由请求行请求头部空行请求包体4个部分组成,一次请求的格式如下:

    *   GET(请求的方式) /newcoder/hello.html(请求的目标资源) HTTP/1.1(请求采用的协议和版本号)

    *   Accept: */*(客户端能接收的资源类型)

    *   Accept-Language: en-us(客户端接收的语言类型)

    *   Connection: Keep-Alive(维护客户端和服务端的连接关系)

    *   Host: localhost:8080(连接的目标主机和端口号)

    *   Referer: [http://localhost/links.asp(](http://localhost/links.asp()告诉服务器我来自于哪里)

    *   User-Agent: Mozilla/4.0(客户端版本号的名字)

    *   Accept-Encoding: gzip, deflate(客户端能接收的压缩数据的类型)

    *   If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT(缓存时间)

    *   Cookie(客户端暂存服务端的信息)

    *   Date: Tue, 11 Jul 2000 18:23:51 GMT(客户端请求服务端的时间)

HTTP响应报文(Response)

HTTP 响应报文由状态行响应头部空行响应包体4个部分组成,一次响应的格式如下:

*   HTTP/1.1(响应采用的协议和版本号) 200(状态码) OK(描述信息)

*   Location: [http://www.baidu.com(](http://www.baidu.com()服务端需要客户端访问的页面路径)

*   Server:apache tomcat(服务端的Web服务端名)

*   Content-Encoding: gzip(服务端能够发送压缩编码类型)

*   Content-Length: 80(服务端发送的压缩数据的长度)

*   Content-Language: zh-cn(服务端发送的语言类型)

*   Content-Type: text/html; charset=GB2312(服务端发送的类型及采用的编码方式)

*   Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT(服务端对该资源最后修改的时间)

*   Refresh: 1;url=[http://www.it315.org(](http://www.it315.org()服务端要求客户端1秒钟后,刷新,然后访问指定的页面路径)

*   Content-Disposition: attachment; filename=aaa.zip(服务端要求客户端以下载文件的方式打开该文件)

*   Transfer-Encoding: chunked(分块传递数据到客户端)

*   Set-Cookie:SS=Q0=5Lb_nQ; path=/search(服务端发送到客户端的暂存数据)

*   Expires: -1//3种(服务端禁止客户端缓存页面数据)

*   Cache-Control: no-cache(服务端禁止客户端缓存页面数据)

*   Pragma: no-cache(服务端禁止客户端缓存页面数据)

*   Connection: close(1.0)/(1.1)Keep-Alive(维护客户端和服务端的连接关系)

*   Date: Tue, 11 Jul 2000 18:23:51 GMT(服务端响应客户端的时间)

解决跨域(CORS)

在服务器响应客户端的时候,带上Access-Control-Allow-Origin头信息,解决跨域的一种方法。

NaN

NaN:是 Not a Number 的缩写,JavaScript 的一种特殊数值,其类型是 Number,可以通过 isNaN(param) 来判断一个值是否是 NaN:

console.log(isNaN(NaN)); //true
console.log(isNaN(23)); //false
console.log(isNaN('ds')); //true
console.log(isNaN('32131sdasd')); //true
console.log(NaN === NaN); //false
console.log(NaN === undefined); //false
console.log(undefined === undefined); //false
console.log(typeof NaN); //number
console.log(Object.prototype.toString.call(NaN)); //[object Number]

数据类型

5种简单数据类型:

  • Undefined
  • Null
  • Boolean
  • Number
  • String

一种复杂数据类型 :

  • Object

数字与数字/字符串之间的数学运算

  1. 多个数字和数字字符串混合运算时,跟操作数的位置有关 :

    console.log(2 + 1 + '3'); //‘33'
    console.log('3' + 2 + 1); //'321'
    
  2. 数字字符串之前存在数字中的正负号(+/-)时,会被转换成数字

    console.log(typeof '3'); // string
    console.log(typeof +'3'); //number
    
  3. 可以在数字前添加 '',将数字转为字符串

    console.log(typeof 3); // number
    console.log(typeof (''+3)); //string
    
  4. 对于运算结果不能转换成数字的,将返回 NaN

    console.log('a' * 'sd'); //NaN
    console.log('A' - 'B'); // NaN
    

To be continued

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

推荐阅读更多精彩内容