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, . t r i m ( s t r ) 方 法 .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前端工程师。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值