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面试题总结一相关推荐

  1. 2021前端react面试题汇总

    2021前端react面试题汇总 React视频讲解 点击学习 全部视频:点击学习 (1)共同点 为了解决状态管理混乱,无法有效同步的问题统一维护管理应用状态; 某一状态只有一个可信数据来源(通常命名 ...

  2. 2021前端高频面试题整理,附答案

    大家好,我是若川.最近组织了源码共读活动,感兴趣的可以加我微信 ruochuan12 若川视野原意是若川的前端视野.但太长了就留下了四个字,不知道的以为关注的不是技术公众号. 今天分享一篇慕课网精英讲 ...

  3. 前端JS面试题2021及答案

    一.数据类型 1.JavaScript中什么是基本数据类型什么是引用数据类型?以及各个数据类型是如何存储的?⭐⭐⭐⭐⭐ 基本数据类型有 Number String Boolean Null Undef ...

  4. 2021前端常见面试题必考必问:js中 非==和 非=的区别是什么?js中==和===区别?

    js中 !==和 !=的区别是什么? 一.区别: != 会转换成相同类型 进行比较,!== 除了比对值还比对类型. 二.各自的解释 1.!= 在表达式两边的数据类型不一致时,会隐式转换为相同数据类型, ...

  5. 2021前端最新面试题之价值30k的面试题

    文章目录 **一.Vue响应式原理** **二.proxy数据代理是什么** **三.计算属性和watch的区别** **四.VueX的应用场景** **五.v-for为啥要加Key** **六.虚拟 ...

  6. 2021前端vue面试题(高频)

    Vue相关 ***: ##(1)说一下vue最大特点是什么或者说vue核心是什么 答:vue最大特点我感觉就是"组件化"和"数据驱动" 组件化就是可以将页面和页 ...

  7. 一道常被人轻视的前端JS面试题

    目录 前言 第一问 第二问 变量声明提升 函数表达式 第三问 第四问 第五问 第六问 构造函数的返回值 第七问 最后 前言 年前刚刚离职了,分享下我曾经出过的一道面试题,此题是我出的一套前端面试题中的 ...

  8. 2021 前端 VUE 面试题总汇

    文章目录 1.vue的生命周期 2.Vue2.x 双向绑定原理 3.Vue3.x 响应式原理 4.v-for 为什么要加上 key 5.Vdom的理解 6.vuex 的结构,以及 actiion 和 ...

  9. 2021前端JavaScript面试题及答案

    准备面试的你,必看这6道JavaScript面试题,摸透JavaScript的基础 一.执行以下代码,测试浏览器会输出什么 <!DOCTYPE html> <html lang=&q ...

最新文章

  1. GC详解及Minor GC和Full GC触发条件总结
  2. C语言再学习 -- Linux下find命令用法
  3. CSS中display:block、inline、inline-block
  4. [svc]后台运行程序screen or nohup
  5. C++学习之路 | PTA乙级—— 1014 福尔摩斯的约会 (20分)(精简)
  6. unity3D常见问题
  7. SSIS Dataflow使用存储过程不能检索列名
  8. 信息学奥赛一本通(2057:【例3.9 】星期几)
  9. notepad++ 查找引用(Find Reference)(适用于c c++及各类脚本比如lua、python等)
  10. mpython掌控板体温_用mpython x玩转掌控板——摇出好心情
  11. c语言编程题报文解析,C语言解析pcap文件得到HTTP信息实例
  12. Weblogic常见故障常 JDBC Connection Pools
  13. BeX5平台简明部署过程
  14. Jni开发(二)Linux运行java测试代码
  15. 林锐的《高质量编程》学习笔记——内存分配方式
  16. java batik读取svg_Java Batik操作SVG,实现svg读取,生成,动态操作
  17. Redis 6.2.7安装配置
  18. 信号能量、功率、功率谱密度、自相关函数公式总结
  19. D. Binary Spiders(思维+字典树)
  20. 2017-2018 年终总结

热门文章

  1. makefile内置函数patsubst
  2. 307跳转php,http 307重定向
  3. 【转载】电脑店超级U盘装系统-设置U盘启动
  4. Servlet生命周期思维导图
  5. 三星android 8.0的变化,三星S8 | S8+升级Android 8.0后有什么变化
  6. oppo android多大内存,大内存高配置手机安利,这三款旗舰用个两三年不成问题
  7. java动态代理、反射
  8. Windows命令行基础
  9. 夥涉为王 vs 伙涉为王
  10. Ambari自动部署Hadoop集群实战