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

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

  1. 2020年前端面试:这50个经典前端面试题面试者必看!

    在收到一家公司前端面试邀请之后,有的人会轻松上阵,在面试官面前乱说,惹人反感.有的人在面试前会把这家公司的主营业务以及岗位面试题做了充分的准备,让面试官眼前一亮,直接录取.所以说在面试之前多看一些面试 ...

  2. 中高级前端工程师都需要熟悉的技能--前端缓存

    前言 web缓存是高级前端工程师必修技能.是我们变成大牛过程中绕不开的知识点. 文章会尽量用通俗易懂的言语来细说web缓存的概念和用处. 本期文章的大纲是 什么是web缓存(前端缓存) 缓存可以解决什 ...

  3. [JavaScript] 多数前端工程师都没注意到的一个关于console.log()的坑

    [JavaScript] 多数前端工程师都没注意到的一个关于console.log()的坑 请阅读以下代码并猜测结果: function test() {let obj = {}, arr=[]for ...

  4. java 前端页面传过来的值怎么防止篡改_答对这40道经典web前端面试题,想不拿到offer都难!...

    想成功就业web前端工程师,想要能高薪就业,那么除了好的web前端技能以外,还得有好的面试技巧,如果提前就了解更多企业的面试要求及面试题目,那么可以让我们的面试成功的几率大大的提高. 今天小编就整理了 ...

  5. 前端周报:前端面试题及答案总结;JavaScript参数传递的深入理解

    1.2017前端面试题及答案总结 |掘金技术征文 "金三银四,金九银十",用来形容求职最好的几个月.但是随着行业的饱和,初中级前端er就业形势不容乐观. 行业状态不可控,我们能做的 ...

  6. Web前端程序员必备 前端面试题汇总(1)

    任何技术岗位面试的时候都要经过人力面试和技术岗位面试至少两次.人力面试一般也就是考察一下个人品质以及薪资问题,而技术岗位则是考察你是否有真才实学.本文和大家分享一个难到了很多前端工程师的面试题:Qui ...

  7. 吐血熬夜整理!2020最全web前端面试题!!!你想要的我这都有!!!

    吐血总结了下web前端面试题,分享给大家,以后还会持续更新,有些题目有多种答案,本文只给出其中一种,哪里有问题的欢迎指出. Html&CSS 1.谈谈你对web标准的理解 web标准的理解 2 ...

  8. 2023高薪前端面试题(一、前端基础——HTTP/HTML/浏览器)

    说一下http和https? http:超文本传输协议,是一个基于请求与响应.无状态的应用层协议,以明文方式发送信息,最初设计目的是提供一种发布和接收 HTML 页面的方法. https:是http的 ...

  9. 前端攻城狮学习笔记七:常见前端面试题之HTML/CSS部分(二)

    前端页面有哪三层构成,分别是什么?作用是什么? 1.结构层:由 HTML 或 XHTML 之类的标记语言负责创建,仅负责语义的表达.解决了页面"内容是什么"的问题. 2.表示层:由 ...

最新文章

  1. 【分享】bootstrap学习笔记
  2. 爬虫学习笔记(二十四)—— pyspider框架
  3. 清华王兴再抛神论:为什么教育决定着中国餐饮业质量?
  4. Kaldi nnet3的fastlstm与标准LSTM
  5. EF的表连接方法Include() - nlh774
  6. Android学习笔记之如何将数据保存到SDCard
  7. c语言输入身高计算标准体重_体质测试 | 身高 / 体重测试评分标准及方法
  8. NYOJ 取石子总结
  9. 国开大学计算机原理边学边练,国家开放大学计算机组成原理
  10. centos7 安装couchbase集群
  11. 计算机术语翻译(Term.)及缩写整理(Abbr.)
  12. 今天开始学Java 如果统计的个数相同,则按照ASII码由小到大排序输出 。
  13. css 预处理器 less sass
  14. 家谱宗族网站源码_家谱管理系统(源代码)
  15. Android 登录3D翻转动画效果
  16. 数组中用id区分拆分成多个数组,把属性拆开成多个数组
  17. 什么是浏览器指纹? 浏览器指纹技术应用有哪些?
  18. DNS劫持 DNS污染 介绍 与 公共DNS 推荐
  19. android 基础 materia design 设计
  20. python 读取pkl_如何打开.pkl的文件

热门文章

  1. promise 中的异常捕获_promise 中的错误处理
  2. excel显著性检验_怎样征服老板?教你用excel找到数据之间隐藏信息
  3. cisco 通过tftp备份/恢复配置和3560交换机IOS升级
  4. 集合、set、list、map、所有集合基本知识使用方法总结
  5. 小程序中封装的ajax 方法
  6. CSS中z-index
  7. AngularJS-demo - 常用命令、内置服务、自定义服务、继承
  8. 谷歌浏览器不能安装离线插件——可行方法
  9. Binary Tree Level Order Traversal II --leetcode C++
  10. JavaScript中一个对象如何继承另外一个对象