2021前端JS面试题总结一
1、JavaScript中如何检测一个变量是一个String类型?请写出函数实现
方法1、function isString(obj){return typeof(obj) === “string”? true: false;// returntypeof obj === “string”? true: false;}方法2、function isString(obj){return obj.constructor === String? true: false;}方法3、function isString(obj){return Object.prototype.toString.call(obj) === “[object String]”?true:false;}如:var isstring = isString(‘xiaoming’);console.log(isstring); // true2、请用js去除字符串空格?方法一:使用replace正则匹配的方法去除所有空格:str = str.replace(/\s*/g,"");去除两头空格:str = str.replace(/^\s*|\s*KaTeX parse error: Undefined control sequence: \s at position 35: …str.replace( /^\̲s̲*/,“”);去除右空格:st…)/g, “”);str为要去除空格的字符串,实例如下:var str = " 23 23 “;var str2 = str.replace(/\s*/g,”");console.log(str2); // 2323方法二:使用str.trim()方法str.trim()局限性:无法去除中间的空格,实例如下:var str = " xiao ming ";var str2 = str.trim();console.log(str2); //xiao ming同理,str.trimLeft(),str.trimRight()分别用于去除字符串左右空格。方法三:使用jquery,.trim(str)方法.trim(str)方法.trim(str)方法.trim(str)局限性:无法去除中间的空格,实例如下:var str = " xiao ming “;var str2 = $.trim(str)console.log(str2); // xiao ming实例如下:function showWindowHref(){var sHref = window.location.href;var args = sHref.split(’?’);if(args[0] == sHref){return “”;}var arr = args[1].split(’&’);var obj = {};for(var i = 0;i< arr.length;i++){var arg = arr[i].split(’=’);obj[arg[0]] = arg[1];}return obj;}var href = showWindowHref(); // objconsole.log(href[‘name’]); // xiaoming3、js 字符串操作函数concat()– 将两个或多个字符的文本组合起来,返回一个新的字符串。indexOf()– 返回字符串中一个子串第一处出现的索引。如果没有匹配项,返回-1。charAt()– 返回指定位置的字符。lastIndexOf()– 返回字符串中一个子串最后一处出现的索引,如果没有匹配项,返回-1。match()– 检查一个字符串是否匹配一个正则表达式。substr()函数–返回从string的startPos位置,长度为length的字符串substring()– 返回字符串的一个子串。传入参数是起始位置和结束位置。slice()– 提取字符串的一部分,并返回一个新字符串。replace()– 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。search()– 执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回-1。split()– 通过将字符串划分成子串,将一个字符串做成一个字符串数组。length– 返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。toLowerCase()– 将整个字符串转成小写字母。toUpperCase()– 将整个字符串转成大写字母。4、怎样添加、移除、移动、复制、创建和查找节点?1)创建新节点createDocumentFragment() //创建一个DOM片段createElement() //创建一个具体的元素createTextNode() //创建一个文本节点2)添加、移除、替换、插入appendChild() //添加removeChild() //移除replaceChild() //替换insertBefore() //插入3)查找getElementsByTagName() //通过标签名称getElementsByName() //通过元素的Name属性的值getElementById() //通过元素Id,唯一性5、写出3个使用this的典型应用1)、在html元素事件属性中使用,如:2)、构造函数function Animal(name, color) {this.name = name;this.color = color;}3)、input点击,获取值(2)、由于是函数内定义函数,并且内部函数–事件回调的引用外暴了,形成了闭包。闭包可以维持函数内局部变量,使其得不到释放。实例如下:function bindEvent(){var obj=document.createElement(“XXX”);obj.οnclick=function(){//Even if it’s a empty function}}解决方法如下:function bindEvent(){var obj=document.createElement(“XXX”);obj.οnclick=function(){//Even if it’s a empty function}obj=null;}以上就是小编今天为大家分享的关于2021Web前端面试题及答案汇总-javascript篇的文章,希望本篇文章中的面试题能够对正准备参加web前端面试的小伙伴们有所帮助。最后祝愿小伙伴们面试成功成为一名优秀的web前端工程师。
2021前端JS面试题总结一相关推荐
- 2021前端react面试题汇总
2021前端react面试题汇总 React视频讲解 点击学习 全部视频:点击学习 (1)共同点 为了解决状态管理混乱,无法有效同步的问题统一维护管理应用状态; 某一状态只有一个可信数据来源(通常命名 ...
- 2021前端高频面试题整理,附答案
大家好,我是若川.最近组织了源码共读活动,感兴趣的可以加我微信 ruochuan12 若川视野原意是若川的前端视野.但太长了就留下了四个字,不知道的以为关注的不是技术公众号. 今天分享一篇慕课网精英讲 ...
- 前端JS面试题2021及答案
一.数据类型 1.JavaScript中什么是基本数据类型什么是引用数据类型?以及各个数据类型是如何存储的?⭐⭐⭐⭐⭐ 基本数据类型有 Number String Boolean Null Undef ...
- 2021前端常见面试题必考必问:js中 非==和 非=的区别是什么?js中==和===区别?
js中 !==和 !=的区别是什么? 一.区别: != 会转换成相同类型 进行比较,!== 除了比对值还比对类型. 二.各自的解释 1.!= 在表达式两边的数据类型不一致时,会隐式转换为相同数据类型, ...
- 2021前端最新面试题之价值30k的面试题
文章目录 **一.Vue响应式原理** **二.proxy数据代理是什么** **三.计算属性和watch的区别** **四.VueX的应用场景** **五.v-for为啥要加Key** **六.虚拟 ...
- 2021前端vue面试题(高频)
Vue相关 ***: ##(1)说一下vue最大特点是什么或者说vue核心是什么 答:vue最大特点我感觉就是"组件化"和"数据驱动" 组件化就是可以将页面和页 ...
- 一道常被人轻视的前端JS面试题
目录 前言 第一问 第二问 变量声明提升 函数表达式 第三问 第四问 第五问 第六问 构造函数的返回值 第七问 最后 前言 年前刚刚离职了,分享下我曾经出过的一道面试题,此题是我出的一套前端面试题中的 ...
- 2021 前端 VUE 面试题总汇
文章目录 1.vue的生命周期 2.Vue2.x 双向绑定原理 3.Vue3.x 响应式原理 4.v-for 为什么要加上 key 5.Vdom的理解 6.vuex 的结构,以及 actiion 和 ...
- 2021前端JavaScript面试题及答案
准备面试的你,必看这6道JavaScript面试题,摸透JavaScript的基础 一.执行以下代码,测试浏览器会输出什么 <!DOCTYPE html> <html lang=&q ...
最新文章
- GC详解及Minor GC和Full GC触发条件总结
- C语言再学习 -- Linux下find命令用法
- CSS中display:block、inline、inline-block
- [svc]后台运行程序screen or nohup
- C++学习之路 | PTA乙级—— 1014 福尔摩斯的约会 (20分)(精简)
- unity3D常见问题
- SSIS Dataflow使用存储过程不能检索列名
- 信息学奥赛一本通(2057:【例3.9 】星期几)
- notepad++ 查找引用(Find Reference)(适用于c c++及各类脚本比如lua、python等)
- mpython掌控板体温_用mpython x玩转掌控板——摇出好心情
- c语言编程题报文解析,C语言解析pcap文件得到HTTP信息实例
- Weblogic常见故障常 JDBC Connection Pools
- BeX5平台简明部署过程
- Jni开发(二)Linux运行java测试代码
- 林锐的《高质量编程》学习笔记——内存分配方式
- java batik读取svg_Java Batik操作SVG,实现svg读取,生成,动态操作
- Redis 6.2.7安装配置
- 信号能量、功率、功率谱密度、自相关函数公式总结
- D. Binary Spiders(思维+字典树)
- 2017-2018 年终总结