1/如何用原生js给一个按钮绑定过两个click事件

var obtn = document.getElementById('btn');

obtn.addEventListener('click',function(){

console.log('点击1')

})

obtn.addEventListener('click',function(){

console.log('点击2')

})

2/如何用js检测变量是string类型还是object类型还是array类型

string:      typeof(obj) ===  'string'   //  typeof obj === 'string'   //  obj.constructor == String

array:     Array.isArray(obj)     //   obj instanceof Array    //   Object.prototype.toString.call(obj) == '[object Array]'  //  判断obj是否有push方法(此方法具有一定的) //   obj.constructor == Array

object:     if( typeof (obj) == 'object')   (array,object都会返回true)   Array.isArray(obj)为false为object    //   obj.toString() == '[object object]' // Object.prototype.toString.call(obj) == '[object object]'

3/js去除字符串空格

(1)replace

去除所有空格:str = str.replace(/s*/g,'');

去除两头空格:str = str.replace(/^\s*|\s*$/g,'')

去除左空格:str = str.replace(/^\s*/,'');

去除右空格: str = str.replace(/(\s*$)/g,'')

(2)trim() ,trimLeft()

str.trim()  无法去除中间的空格  str.trimLeft()   去除左边的空格     str.trimRight()   去除右边的空格

(3)jquery $.trim(str)

$.trim(str)  无法去除中间的空格

4/如何从url中获取参数

let hrefStr = window.location.href itemStr = hrefStr.split('?')[1]  arr = itemStr.split('&') let obj = {} for(let i in arr){item = arr[i].split('=');obj[item[0]] = item[1]} 

5/js排序,冒泡,快排

//快排  二分法 O(n log n)
var arr = [3,1,4,7,2,9,8]
function quickSort (arr) {
  if (arr.length == 0) {
    return arr;
  }
  var cIndex = Math.floor(arr.length/2)
  var c = arr.splice(cIndex,1)
  var pre = []
  var next = []
  var newArr = []
  for (var i in arr) {
    if (arr[i] > c) {
      next.push(arr[i])
    } else {
      pre.push(arr[i])
    }
  }
  return quickSort(pre).concat(c,quickSort(next))
}
console.log(quickSort(arr))
//冒泡  比较相邻   O(n^2)
function bubbleSort (arr) {
  for (var i = 0; i < arr.length - 1; i++) {
    for (var j = 0; j < arr.length - i - 1; j++) {
      if (arr[j] > arr[j + 1]) {
        var temp;
        temp = arr[j]
        arr[j] = arr[j + 1]
        arr[j + 1] = temp 
      }
    }
  }
  for (var i in arr) {
    if (arr[i] > arr[i+1]) {
      var temp
      temp = arr[i]
      arr[i] = arr[i+1]
      arr[i+1] = temp
    }
  }
  return arr
}
console.log('冒泡' + bubbleSort(arr))

6/js 原型

function Test1 (a, b) {
  this.a  = a;
  this.b = b;
}
Test1.prototype = {
  add: function (x, y) {
    return x + y;
  },
  sub: function (x, y) {
    return x - y;
  }
}
var test1 = new Test1()
console.log(test1.add(2,9))

Test1.prototype = function () {
  add = function (x, y) {
    return x + y;
  },
  sub = function (x, y) {
    return x - y;
  }
  return {
    add: add,
    sub: sub
  }
}()
var test1 = new Test1()
console.log(test1.add(4,1))
var Test2 = function () {
  this.dec = 2
}
Test2.prototype.add = function (x, y) {
  return x + y;
}
Test2.prototype.sub = function (x, y) {
  return x - y;
}
var test2 = new Test2()
console.log(test2.add(6,9))
var Test3 = function () {
  this.dec = 2
};
Test3.prototype = {
  add: function(x,y) {
    return x + y;
  },
  sub: function (x, y) {
    return x - y;
  }
};
var Test4 = function () {
  this.tax = 5
};
Test4.prototype = new Test3()
var test4 = new Test4()
console.log(test4.add(7,8))
console.log(test4.dec)

7/原型链

function Foo () {
  this.value = 42
}
Foo.prototype = {
  method: function () {}
}
function Bar () {}
Bar.prototype = new Foo()
Bar.prototype.foo = 'Hellow World'
Bar.prototype.constructor = Bar
var test = new Bar()
// test 是Bar的实例   Bar.prototype是Foo的实例  test可以访问Foo的value和method  若不想让其访问到value  则 染发Bar.prototype = Foo.prototype

8/hasOwnProperty 一个对象是否包含自定义属性而不是原型链中的属性

是javascript中唯一一个处理属性但是不查找原型链的函数

Object.prototype.bar = 1;

var foo = {goo: undefined};

foo.bar; // 1

'bar' in foo; // true

foo.hasOwnProperty('bar'); // false

foo.hasOwnProperty('goo'); // true

缺点:javascript不会保护hasOwnPrototype() 若这个对象含有 hasOwnPrototype() 外部的prototype()验证的时候总是返回对象内部的hasOwnPrototype()设置的内容

var foo = {

hasOwnProperty: function() {

return false;

},

bar: 'Here be dragons'

};

foo.hasOwnProperty('bar'); // 总是返回 false

web前端面试 js部分相关推荐

  1. web前端面试高频考点——JavaScript 篇(一)【JS的三座大山 】 原型和原型链、作用域和闭包、异步

    系列文章目录 JavaScript 知识梳理,收录了web前端面试 95%以上 的高频考点,满满的干货.给你做一个高效的知识梳理,为你的面试保驾护航! 内容 参考链接 HTML & CSS 篇 ...

  2. 【持续..】WEB前端面试知识梳理 - CSS部分

    传送门: WEB前端面试知识梳理 - CSS部分 WEB前端面试知识梳理 - JS部分 最近在看大厂的一些面试题,发现很多问题都是平时没有在意的,很多知识都是知道一点但又很模糊说不出个所以然来,反思自 ...

  3. 2018web前端不好找工作之web前端面试简历补救篇

    web前端面试简历算是第一张脸,给HR/CTO的第一印象,弄好啦,就有面试的机会!? 关于前端面试简历简单的介绍几点吧. 1.关于简历如何写.首先可以去招聘网站上面看看.那么可以看哪些呢.比如在拉钩上 ...

  4. web前端面试总结(自认为还算全面哈哈哈哈哈!!!!)

    web前端面试总结(自认为还算全面哈哈哈哈哈!!!!) 一.CSS问题 1.flex布局 display:flex; 在父元素设置,子元素受弹性盒影响,默认排成一行,如果超出一行,按比例压缩 flex ...

  5. web前端不好找工作之web前端面试简历补救篇

    web前端面试简历算是第一张脸,给HR/CTO的第一印象,弄好啦,就有面试的机会!? 关于前端面试简历简单的介绍几点吧. 1.关于简历如何写.首先可以去招聘网站上面看看.那么可以看哪些呢.比如在拉钩上 ...

  6. web前端面试宝典——带你直击面试重难点(40个经典题目,涵盖近90%的考点,码字2w,干货满满!)

    系列文章目录 JavaScript 知识梳理,收录了web前端面试 95%以上 的高频考点,满满的干货.给你做一个高效的知识梳理,为你的面试保驾护航! 内容 参考链接 HTML & CSS 篇 ...

  7. web前端面试--浏览器兼容性问题

    web前端面试 本人是一个web前端开发工程师,主要是vue框架,整理了一些面试题,今后也会一直更新,有好题目的同学欢迎评论区分享 ;-) web面试题专栏:点击此处 文章目录 web前端面试 前言 ...

  8. 2019 web 前端面试总结(春招)

    说是春招总结,其实春招只试了头条,算是对找工作以来的总结吧.而且时间过去了快半年了,中间也去实习了一段时间,了解了公司前端开发到底在做什么,不像之前只有在实验室的 low 到爆的项目经验. 关于 of ...

  9. web前端面试高频考点——Vue原理(理解MVVM模型、深度/监听data变化、监听数组变化、深入了解虚拟DOM)

    系列文章目录 内容 参考链接 Vue基本使用 Vue的基本使用(一文掌握Vue最基础的知识点) Vue通信和高级特性 Vue组件间的通信及高级特性(多种组件间的通信.自定义v-model.nextTi ...

最新文章

  1. 程序员的灯下黑:不要忘记你的目标
  2. 深度学习之线性回归模型
  3. 列表和字典循环遍历时的删除问题,集合
  4. 芯片设计中的latch_Latch-up (闩锁效应)
  5. 如何在软件发布计划中自动化语义化版本与变更日志
  6. iPhone 13外观四年以来首次改动:真的尽力了
  7. C++ main函数的几点细节(转载)
  8. 7z增量更新参数使用
  9. Qt程序实现自动重启
  10. a form 出口享惠情况_关税聚焦 | 报关单“出口享惠情况”填报解读
  11. 精品软件 推荐 TM2013 性能不好的电脑可以用这软件替代QQ
  12. 《Renewable Energy》论文格式
  13. 3d文件格式转换工具
  14. SH-SSS丨《ISSD: 基于迭代式语音分离的说话人日志系统》论文线上分享
  15. 13步设计出一个ITSM系统
  16. A5SHB,A5SHB芯片三极管规格书
  17. 考研数据结构判断题整合
  18. 爱奇艺视flash频嵌入网站
  19. 如何将思科交换机恢复出产设置?
  20. 视频教程-【吴刚】电商网站详情页设计初级入门标准视频教程-UI

热门文章

  1. Jsp+Ssm+Mysql实现的零食商城系统
  2. java替换一个反斜杠_java反斜杠替换
  3. 架构师教你:如何实现两个完全独立闭环业务系统的融合。
  4. 血族服务器暂时无法登录,天之炼狱归来服务端7.01架设教程问题解答
  5. Python实现自动完成打字测试
  6. GLES2.0中文API-glUseProgram
  7. Win10 21H2 19044+vs2019 WDK驱动开发,错误 MSB8040缓解Spectre 漏洞的库以及输出SXS.DLL的垃圾信息
  8. 读书感想20221218
  9. 完美解决:不能为虚拟电脑打开一个新任务的问题
  10. 跨考哈工程计算机考研科目,2021二战跨考哈工程电子信息初试经验