每个前端工程师都应该去了解的前端面试题总结(一)

当我们需要找工作的时候,面试对于我们每个程序员来说都是非常重要的环节,掌握一些面试题技巧是非常有必要的,今天主要分享几个js有关的面试题

作用域

var num1 = 55
var num2 = 66
function f1(num, num1) {
num = 100
num1 = 100
num2 = 100
console.log(num) //100
console.log(num1) //100
console.log(num2) // 100
}
f1(num1, num2)
console.log(num1) //55
console.log(num2) // 100
consolee.log(num) //num is not defined

值类型和引用类型的传递

//构造函数
function Person(name, age, salary) {
  this.name = name;
  this.age = age;
  this.salary = salary
}

function f1(person) {
	person.name = ‘ls‘;
  person = new Person(‘aa‘, 18, 10)
}
var p = new Person(‘zs‘, 18, 1000)
console.log(p.name); // zs
f1(p)
console.log(p.name) // ls

封装函数将字符串进行驼峰命名

根据某个字符进行切割

var foo = ‘get-element-by-id‘;
//根据某个字符串进行切割
var arr = foo.split(‘-‘);
//获取每个元素中的第一个字符并转换成大写
for(var i = 1; i< arr.length; i++) {
  arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substr(1, arr[i].length-1)
}
//根据某个字符将数组转换成字符串
console.log(arr.join(‘‘))

//自定义函数
function toString(foo) {
	var arr = foo.split(‘-‘);
//获取每个元素中的第一个字符并转换成大写
for(var i = 1; i< arr.length; i++) {
  arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].substr(1, arr[i].length-1)
}
//根据某个字符将数组转换成字符串
return arr.join(‘‘)
}
console.log(toString(‘get-element-by-id‘))

冒泡排序

var arr=[5,4,3,2,1]
//轮数
for(var i=0; i< arr.length - 1 ; i++) {
	for(var j = 0; j< ar.length - 1-i; j++ ) {
  	// 判断前一个数大于后一个数时候进行值交换
    if(arr[j] > arr[j+1]) {
     //借助第三方变量交换两个变量的值
      var temp = arr[j]
      arr[j] = arr[j+1]
      arr[j+1] = temp
    }
  }
}
console.log(arr)

反转数组

var arr = [1,2,3,4, 5,6,7,8]
for(var i=0; i< arr.length/2; i++) {
	// arr[i] arr[arr.length-1-i]
  // 借助第三方变量交换两个变量的值
  var temp = arr[i]
  arr[i] = arr[arr.length-1-i]
  arr[arr.length-1-i] = temp
}

去掉数组中重复性数据

  1. 先创建一个新数组,把原数组中的第一个元素插入到新数组中
  2. 遍历原数组中的每一个元素分别和新数组中的每个元素进行比较


// 原数组
var arr = [8, 11,20,5,20,8,0,2,4,0,8]
// 新数组
var newArr = []
newArr[0] = arr[0]
for(var i=0; i< arr.length; i++) {
  //newArr中的每个元素
  for(var k=0; k< newArr.length; k++) {
    // 当原数组中的值和新数组中的值相同时候,就没有必要再继续比较了,跳出内循环
  	if(newArr[k] === arr[i]) {
    	break;
    }

    //拿原数组中的某个元素比较新数组中的最后一个元素还没有重复
    if(k === newArr.length - 1) {
      //将数据插入新数组中
    	newArr.push(arr[i])
    }
  }
}
console.log(newArr)

如果想了解更多,请扫描下面二维码,关注公众号:

原文地址:https://www.cnblogs.com/lfcss/p/12690752.html

时间: 2024-08-29 17:41:11

每个前端工程师都应该去了解的前端面试题总结(一)的相关文章

H5前端学习之路第3天--前端面试题

今天没有学习其他的,还是决定刷一些面试题看看 「 CSS篇 」 1. CSS 盒子模型,绝对定位和相对定位 盒子模型:一个元素是有content(内容),padding(内补白),border(边框),margin(外补白)四部分组成,而这四个部分就组成了css中的盒模型 绝对定位:position:absolute  固定定位:position:fixed 2. 清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法 当脱离文档流时,造成高度塌陷 方法:clear:both   overflow

前端工程师都用哪些靠谱的小工具?

前端工程师都用哪些靠谱的小工具? 转载自 作者 杜Amy 现在市场上可用的前端开发工具实在是数不胜数,令人眼花缭乱,作为一个已入坑的前端开发工程师,再此分享一下自己用过的一些工具库. 前端小工具 说到开发工具,肯定是少不了编辑器: SublimeText SublimeText SublimeText 这个工具很火,关键在于它的小巧.简洁.快枪手,长长的文本打开速度也是杠杠的.具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等.还可自定义键绑定,菜单和工具栏.是一个跨平

前端排序算法总结;前端面试题2.0;JavaScript异步编程

1.前端 排序算法总结 排序算法可能是你学编程第一个学习的算法,还记得冒泡吗? 当然,排序和查找两类算法是面试的热门选项.如果你是一个会写快排的程序猿,面试官在比较你和一个连快排都不会写的人的时候,会优先选择你的.那么,前端需要会排序吗?答案是毋庸置疑的,必须会.现在的前端对计算机基础要求越来越高了,如果连排序这些算法都不会,那么发展前景就有限了.本篇将会总结一下,在前端的一些排序算法. https://segmentfault.com/a/11... 2.前端面试题 V2.0 详见: 这是一份

成为一名优秀的web前端工程师都需要做些什么?

程序设计之道无远弗届,御晨风而返.———— 杰佛瑞 · 詹姆士 我所遇到的前端程序员分两种:    第一种一直在问:如何学习前端?    第二种总说:前端很简单,就那么一点东西.     我从没有听到有人问:如何做一名优秀.甚至卓越的WEB前端工程师.    如果成为一名优秀的web前端工程师(前端攻城师)? 何为:前端工程师?前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.Web前端开发技术主要包括三个要素:HTML.CSS和JavaScript!它要求前端开发工程师

前端面试题二(来自前端网http://www.qdfuns.com/notes/23515/fa8b1e788ac39b04108fc33e5b543c4a.html)

HTML&CSS 1.请描述一下 cookies,sessionStorage 和 localStorage 的区别? cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密). cookie数据始终在同源的http请求中携带(即使不需要),记会在浏览器和服务器间来回传递. sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存. 存储大小: cookie数据大小不能超过4k. sessionStorage和l

前端面试题_2.web前端性能优化的方式

从前的日色变得慢,车,马,邮件都慢······ 巴特,现在前端是庞大的,针对方方面面的资源都有不同的方式. 站在用户角度,我们希望页面加载得更快.页面对用户的操作响应得更及时,能够给用户提供更为友好的体验. 站在服务商的角度,我们希望前端优化能够减少页面请求数.或者减小请求所占带宽,能够节省可观的资源. 1. 减少请求资源或者次数 尽量合并压缩 css 和 js 文件:为了减少http请求次数以及减少请求资源的大小 采用图片懒加载(延迟加载):减少页面第一次加载过程中http的请求次数 能用cs

前端面试题(来自前端网http://www.qdfuns.com/notes/23515/c9163ddd620baac5dd23141d41982bb8.html)

HTML&CSS 1. 常用那几种浏览器测试?有哪些内核(Layout Engine)? (Q1)浏览器:IE,Chrome,FireFox,Safari,Opera. (Q2)内核:Trident,Gecko,Presto,Webkit. 2. 说下行内元素和块级元素的区别?行内块元素的兼容性使用?(IE8 以下) (Q1)行内元素:会在水平方向排列,不能包含块级元素,设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效. 块级元

前端知识点、前端面试题

项目地址 JavaScript CSS HTML 前端安全 HTTP 其他 原文地址:https://www.cnblogs.com/woai3c/p/10247941.html

好程序员HTML5大前端分享web前端面试题集锦三

1.HTML语义化的理解? 答案:HTML语义化就是让页面的内容结构化,便于对浏览器.搜索引擎解析:在没有样式CSS的情况下也以一种文档格式显示,并且是容易阅读的:搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于SEO:使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解. 2.父元素透明,但是又不影响子元素的透明度怎么实现? 答案:方法一:用rgba 方法二:再加上一层与父元素同级的div装载子元素,定位到子元素原来的位置 3.对web标准以及w3c的理解与认识? 答案:web