JavaScript面试题111-120_Ashy-的博客-程序员宝宝

技术标签: 前端面试题  html5  es6  javascript  

JavaScript面试题111-120

每日坚持学10道题


111. js数组去重(9种)

[问答题]
用 JavaScript 脚本为 Array 对象添加一个去除重复项的方法。


来自:百度
参考:
// 利用ES6中的 Set 方法去重
    let arr = [1, 3, 2, 2, 9, 8, 3, 1];
    function unique(arr) {
    
        return Array.from(new Set(arr))

    }
    console.log(unique(arr));   // [1,0,2,9,8,3]

代码执行地址:请访问
更多方法:请访问


112. js中的括号

[单选题]
以下哪一条 Javascript 语句会产生运行错误?
A.var obj=( );
B.var obj=[ ];
C.var obj={ };
D.var obj=/ /;


来自:网易
答案:A
A 是语法错误
B 是创建一个数组对象
C 是创建一个对象
D 是一个创建正则对象;若为 var obj=/ /; 即赋值被注释掉,及运行被结束;

113. JS库与API

[单选题]
从四个选项选出不同的一个。
A.JQuery
B.Node.js
C.Prototype
D.CommonJS


来自:搜狐研发工程师模拟笔试题
答案:D
  • Jquery 是继 prototype 之后又一个优秀的 Javascrīpt 框架。它是轻量级的 js 库(压缩后只有 21k) ,它兼容 CSS3,还兼容各种浏览器。
  • Node.js 是一套用来编写高性能网络服务器的 JavaScript 工具包。
  • 在 JavaScript 中,prototype 对象是实现面向对象的一个重要机制。每个函数就是一个对象(Function),函数对象都有一个子对象 prototype 对象,类是以函数的形式来定义的。
  • prototype 表示该函数的原型,也表示一个类的成员的集合。prototype.js 是由 Sam Stephenson 写的一个 javascript 类库。
  • CommonJS API 定义很多普通应用程序(主要指非浏览器的应用)使用的 API,从而填补了这个空白。

114. 浏览器缓存

[问答题]
浏览器的缓存和本地存储相关内容有哪些?
这些在什么环境下都各自能起到什么作用?


来自:百度
参考
  • html 页面、图片等.
  1. 在联网时已访问的内容可以直接从缓存调出来,提高访问速度离线时,可以本地存储做离线访问(google gears)
  2. 以后我们每次访问网站时,IE 会首先搜索这个目录,如果其中已经有访问过的内容,那 IE 就不必从网上下载,而直接从缓存中调出来,从而提高了访 问网站的速度。

115. 优化网页性能(7种)

[问答题]
怎样优化网页性能


来自:百度
参考:

1.尽量减少 HTTP 请求次数
2. 减少 DNS 查找次数
3.资源合并与压缩
4.CSS Sprites
5.Inline Images
6.将外部脚本置底
7.缓存


116. ajax 原理

[问答题]
ajax 原理、如何实现刷新数据及优点?


参考:
来自:迅雷

参考:

  • Ajax 的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给 Ajax 引擎自己来做,只有确定需要从服务器读取新数据时再由 Ajax 引擎代为向服务器提交请求。
  • 优点:1、减轻服务器负担 2、无刷新更新页面 3、更好的用户体验

117. 去除字符串的前后空格

[问答题]
用 js 脚本写去除字符串的前后空格。


来自:百度
参考: 脚本方法:
	String.prototype.trim = function (mode) {
           //前后去空格
        if (mode == 'left') {
    
            return ((this.charAt(0) == "" && this.length > 0) ? this.slice(1).trim('left') : this);
        } else if (mode == 'right') {
    
            return ((this.charAt(this.length - 1) == "" && this.length > 0) ?
                this.slice(0, this.length - 1).trim('right') : this);
        } else {
    
            return this.trim('left').trim('right');
        }
    };

ES新增的trim() 方法: 参考地址.

// trim 方法取出字符串两边的空格
	let str = "     str.trim()去除两边的空格     ";
	console.log(str)	//      str.trim()去除两边的空格     
	let str2 = str.trim();
	console.log(str2)	// str.trim()去除两边的空格

118. 语言特性

[单选题]
蔺相如,司马相如;魏无忌,长孙无忌。下列哪一组对应关系与此类似()
A.PHP,Python
B.JSP,servlet
C.Java,Javascript
D.C,C++


来自:程序员文化水平闯关挑战卷
答案:C
蔺相如 和 司马相如,都有 相如; 魏无忌 和 长孙无忌 都有 无忌; 名字里面由重复地方,但没有什么关系。 但是 D 选项 C 和 C plus plus ,后者是对前者的进阶版,不是很贴切

119. 正则

[问答题]
判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母、数字、下划线,总长度为 5-20。


来自:前端工程师练习卷
参考:
var reg = /^[a-zA-Z][a-zA-Z_0-9]{4,19}$/;
reg.test("a1a__a1a__a1a__a1a__");

120. 统计字符次数

[问答题]
判断一个字符串中出现次数最多的字符,统计这个次数。


来自:前端工程师练习卷
参考:
//将字符串的字符保存在一个 hash table 中,key 是字符,value 是这个字符出现的次数
    var str = "abcdefgaddda";
    var obj = {
    };
    for (var i = 0, l = str.length; i < l; i++) {
    
        var key = str[i];
        if (!obj[key]) {
    
            obj[key] = 1;
        } else {
    
            obj[key]++;
        }
    }
    /*遍历这个 hash table,获取 value 最大的 key 和 value*/
    var max = -1;
    var max_key = "";
    var key;
    for (key in obj) {
    
        if (max < obj[key]) {
    
            max = obj[key];
            max_key = key;
        }
    }
    console.log("出现最多的为:" + max_key + " 次数:" + max);

代码地址: 请参考


~~ 今天的面试题完成 ~~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43794299/article/details/113868054

智能推荐

2019.3.28面试题_weixin_30871701的博客-程序员宝宝

  今天去了一家公司面试,是截止目前问得比较多的一家。下面记录一下面试的笔试题和一个实操题:笔试题: 1.typeof返回的类型:  undefined、boolean、string、number、object  注意这里没有null,null也是属于object的。 同时说一下js的数据类型这里容易和typeof搞混!   js的数据类型可以分为...

“没有找到mfc100u.dll”的解决方法_weixin_34391445的博客-程序员宝宝

现在需要安装MindManager 2016 思维导图软件时,打开软件提示找不到 mfc100u.dll,无法执行程序。之前一直好好的,现在换电脑了安装提示这个问题,然后百度找的解决方案:需要去微软官网下载组件:Visual C++ 2010 x64https://www.microsoft.com/en-us/download/details.aspx?id=14632...

Linux和windows系统之间的区别_Listen2You的博客-程序员宝宝

如今,主流的操作系统由三类,Windows和Mac OS相信大家都不陌生,他们是我们平常最熟知的操作系统。那另一种操作系统是什么呢?当然就是Linux操作系统。Linux系统正是因为它开源且免费、跨平台等优良的特性,深受码农们的喜爱。Linux在服务器端占据着霸主地位,并且在未来云计算的发展方面,它的地位也不会轻易动摇。相比于不开源的Windows和MacOS,Linux将是程序员们施展拳脚的重要根据地。目前,我们常见的网络设备的操作系统基本都是使用Linux,比如安卓系统、银行服务器、企业erp系统服

C++中 map 的基本操作和嵌套map的使用_、zyx的博客-程序员宝宝_c++ map嵌套map遍历

C++中map容器提供一个键值对容器,map与multimap差别仅仅在于multiple允许一个键对应多个值。本文主要总结一下map基本用法和嵌套用法示例。一、map基本用法  1   头文件   #include   &amp;lt;map&amp;gt;   2   定义   map&amp;lt;int,   int&amp;gt;   my_Map; //注意这里的int和int可以是其他类型  或者是typedef ...

这是我学习COM遇到的几个基本问题其解决 黄森堂(vcmfc)著 1.我用ATL生成一个组件对象,我在COM中使用IDD_IEncrypt,这个在哪里写义,是啥?GUID? 答:IDD_IEncry_零点零一的博客-程序员宝宝

这是我学习COM遇到的几个基本问题其解决黄森堂(vcmfc)著1.我用ATL生成一个组件对象,我在COM中使用IDD_IEncrypt,这个在哪里写义,是啥?GUID?答:IDD_IEncrypt是GUID,也称作CLSID,放到该项目的对象的xxx_i.c文件中。2.S_OK,NOERROR等常量中定义在哪些文件上(偷一下懒)(VC6.0)。答:winerror.

随便推点

android studio代理设置_空心菜使者的博客-程序员宝宝_androidstudio代理设置

原文网址:HTTP://developer.android.com/tools/studio/studio-config.html组态在本文档中更新频道代理设置也可以看看安装Android Studio工作流程构建系统在安装过程中,Android Studio提供验证系统需求的向导和模板,例如Java Development

Ubuntu16.04离线安装Nodejs与JDK_kyyee的博客-程序员宝宝

Linux 系统环境虚拟机:VMware 12.1.0系统版本:Ubuntu 16.04 64 位Nodejs 下载官网下载 64 位安装包 node-v6.10.3-linux-x64.tar.xznode 与 npm 的安装1.将安装包拷贝到虚拟机,解压安装包tar -xJf node-v6.10.3-linux-x64.tar.xz2.移动解压出...

程序员创业三关_weixin_34377919的博客-程序员宝宝

当人们还在浩叹第一次网络泡沫破灭的时候,互联网已经悄悄迎来了它的第二个春天;从某种意义上看,甚至已经进入了夏天——热烈但不乏浮躁、兴奋但失之肤浅。某位投资人声称今年总共有三十亿美金资本进入中国,言下之意,大家都可以甩开膀子大干快上,登陆纳市不好说,搞笔钱进来花差花差多半是没问题的。 另一方面,程序员创业,在中国乃至国外,都不是什么新鲜事儿。我们是那么一群聪明、优秀的家伙,大脑发达,点子就...

数据挖掘试题(150道)_乌恩大侠的博客-程序员宝宝

单选题某超市研究销售纪录数据后发现,买啤酒的人很大概率也会购买尿布,这种属于数据挖掘的哪类问题?(A)A. 关联规则发现 B. 聚类C. 分类 D. 自然语言处理以下两种描述分别对应哪两种对分类算法的评价标准? (A)(a)警察抓小偷,描述警察抓的人中有多少个是小偷的标准。(b)描述有多少比例的小偷给警察抓了的标准。A. Precisi...

[Github] You‘ve successfully authenticated, but GitHub does not provide shell access._骑单车的王小二的博客-程序员宝宝

git push时出现这个错误提示,一般是本地设置github的ssh连接时,设置了无密码,没配置好。可用下面这个命令进行解决:git remote set-url origin [email protected]:用户名/仓库名.git

推荐文章

热门文章

相关标签