手写面试编程题

第1题==》实现数组去重 通过 new Set(数组名)
// var arr = [12, 12, 3, 4, 5, 4, 5, 6, 6];
// var newarr1 = new Set(arr);
// console.log([...newarr1]);
// 输出的值是  [12, 3, 4, 5, 6]

第2题==》深拷贝:
==》拷贝出来的对象互相的独立,不会影响 使用的JSON.stringify和JSON.parse(user2);

var user1={name:"张三",age:18,sex:"男"};
var user2=JSON.stringify(user1); //用JSON.stringify()把对象转为一个字符串
var user3=JSON.parse(user2); //JSON.parse()会根据这个字符串转为一个新的对象。
console.log(user3);

第3题===>获取 你当前被点击的文本内容
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>

$("li").on("click",function(){
console.log($(this).text());
})

on语法是==》父辈的元素对象.on("事件类型","触发的元素",function(){})

第4题==》 设置奇数偶数背景色
odd 奇数 和 even偶数 是可用于匹配下标是奇数或偶数的子元素的关键词(第一个子元素的下标是 1)
li:nth-child(odd) { background: #0f0;} 设置奇数行

计算交集数组
var a = [1,2,3,4,5];
var b = [2,4,6,8,10];

var c = a.filter(function(v){ return b.indexOf(v) > -1 }) //交集

var d = a.filter(function(v){ return b.indexOf(v) == -1 }) //差集

var e = a.filter(function(v){ return !(b.indexOf(v) > -1) }) //补集
.concat(b.filter(function(v){ return !(a.indexOf(v) > -1)}))

//并集
var f = a.concat(b.filter(function(v){ return !(a.indexOf(v) > -1)}));

console.log("a与b的交集:", c); // a与b的交集: (2) [2, 4]
console.log("a与b的差集:", d); //  [1, 3, 5]
console.log("a与b的补集:", e); // [1, 3, 5, 6, 8, 10]
console.log("a与b的并集:", f); //(8) [1, 2, 3, 4, 5, 6, 8, 10]

第五题: JS中检测变量为string类型的方法
var aa = "hello world";
function stringCheck (str) {
if(typeof str =="string" || str.constructor == String) {
return true;
} else {
return false;
}
}
console.log(stringCheck(aa)) ;

第6题闭包
// 子函数跨作用域访问了父函数的变量 形成闭包 num不会给释放 。它利用了必报的缺点
var getNum = (function () {
var num = 10;
return function () {
return num++
};
})();

var rst1 = getNum();
var rst2 = getNum();
console.log(rst1, rst2); //10 11

第7题==》 将两个数组合并为一个数组
var a = [1, 2, 3,4,5];
var b = [4, 5, 6];

var c = a.concat(b); //链接
var d=new Set(c); //数组去重
console.log([...d]); //将伪数组变为真实的数组

第8题==》 怎样添加、移除、移动、复制、创建和查找节点?
1)创建新节点
  createDocumentFragment() //创建一个DOM片段
  createElement() //创建一个具体的元素
  createTextNode() //创建一个文本节点

  appendChild() //添加
  removeChild() //移除
  replaceChild() //替换
  insertBefore() //插入

3)查找
  getElementsByTagName() //通过标签名称
  getElementsByName() //通过元素的Name属性的值
  getElementById() //通过元素Id,唯一性

第9题==》计算某个

第10题,原型继承提
function Child(name, age){
this.name = name;
this.age = age;
}
Child.prototype = new People();
var child = new Child(‘Rainy‘, 20);
child.say()

第11题==》构造函数的继承
function Child(name, age){
People.call(this)
this.name = name;
this.age = age;
}
var child = new Child(‘Rainy‘, 20);
child.say();

第12题 ===》对一个数组实现随机排序
var a=[12,34,1,2,3,0,-23]; //对这个数组实现随机排序
function shuffle(arr) {
arr.sort(function () {
return Math.random() - 0.5;
});
}
shuffle(a);
console.log(a);

第13题==》让元素水平 垂直居中的三种方式
/* 第一种方式 绝对定位 距离石中玉为0 最后margin:auto 兼容性:,IE7及之前版本不支持 这种方式的兼容性是最好的了*/
div {
width: 200px;
height: 200px;
background: green;
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
margin: auto;
}

/* 第二种方式 div绝对定位 【margin 负间距】*/
/* div {
width: 200px;
height: 200px;
background: green;

position: absolute;
left: 50%;
top: 50%;
margin-left: -100px;
margin-top: -100px;
} */

/* 第三种方式 用了css3的知识 div绝对定位水平垂直居中【Transforms 变形】 IE8不支持*/
div {
width: 200px;
height: 200px;
background: green;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}

第14题===》通过jQuery的extend方法实现深拷贝
var array = [1,2,3,4];
var newArray = $.extend(true,[],array);

原文地址:https://www.cnblogs.com/IwishIcould/p/10749618.html

时间: 2024-10-11 10:55:31

手写面试编程题的相关文章

2. Python面试编程题汇总

编程题 1 台阶问题/斐波纳挈 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. fib = lambda n: n if n <= 2 else fib(n - 1) + fib(n - 2) 第二种记忆方法 def memo(func): cache = {} def wrap(*args): if args not in cache: cache[args] = func(*args) return cache[args] return wrap

java面试编程题

[程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?   //这是一个菲波拉契数列问题public class lianxi01 {public static void main(String[] args) {System.out.println("第1个月的兔子对数:    1");System.out.println("第2个月的兔子对数:    1"

面试编程题(排序)

排序:快排.堆排序 /*直接插入排序 *设置哨兵[0]*/ void InsertSort(int data[],int length) { for(int i = 2; i <= length; i++) { if(data[i] < data[i-1]) { data[0] = data[i]; data[i] = data[i-1]; int j; for(j= i-2; data[0] < data[j]; j--) data[j+1] = data[j]; data[j+1]

[面试编程题]算法基础-字符移位

错误代码 #include<iostream> #include<string> using namespace std; bool isLow(char c) { if( (c>='A') && (c<='Z')) return false; else return true; } bool isCap(char c) { return !isLow(c); } int main() { string s; while(cin>>s) {

关于java写一个单例类(面试手写题)

package com.shundong.javacore; /** * java写一个简单的单例类 * @author shundong * */ class Singleton { //使用一个类变量来缓存曾经创建的实例 private static Singleton instance; //对构造进行隐藏(private) private Singleton(){} /** * 提供一个静态方法 * 该方法加入了自定义控制 保证只产生一个Singleton对象 * @return 返回S

Java面试必备:手写单例模式

面试官:请手写下几种常见的单例模式 我:好的(面带微笑),心里暗喜(送分题). 没成想提笔便写出了如此豪放的代码,不堪回首,请原谅我的不羁! 此篇整理了几种常见的单例模式代码示例,再有面试官让手撕单例模式,便能心中有码,下笔有神. 为什么要有单例模式 实际编程应用场景中,有一些对象其实我们只需要一个,比如线程池对象.缓存.系统全局配置对象等.这样可以就保证一个在全局使用的类不被频繁地创建与销毁,节省系统资源. 实现单例模式的几个要点 首先要确保全局只有一个类的实例. 要保证这一点,至少类的构造器

百度面试两板斧:手写算法问基础

阅读本文大概需要 4 分钟. 作者:黄小斜 17年7月份,我参加了百度的实习生面试,随后在百度开始了半年的实习生活,18年7月份,我参加了百度的校招提前批面试,由于可以同时参加百度多个部门的提前批面试,结果我前前后后面试了10多次,也算是一段比较奇葩的经历了. 当然,实习生面试是这里面最简单的一次了,三轮面试,前两轮都是在问基础,问的也不深入,第三轮面试则直接谈人生谈理想.其实百度的日常实习生面试难度确实比校招要来的容易,因为百度一年四季都在招实习生,反观阿里和腾讯,只有在春招期间招收实习生.

c++后台开发面试常见知识点总结(六)算法手写

链表倒转  leetcode-206 连续子数组最大和问题(和最大的连续子序列的和)   leetcode-53 输出字符串中最长的回文子串长度?  leetcode-5 一个字符串,求最长无重复子串的长度?  leetcode-3 最长递增子序列  leetcode-300 反转一个字符串......(手写代码) leetcode-344 数组中存在一个大于n/2次的数,如何以最优方法查找它?LeetCode 169 \ 229 一个字符串中{}  [ ]  ()匹配问题     LeetCo

剑指Offer名企面试官精讲典型编程题pdf

下载地址:网盘下载 <剑指Offer:名企面试官精讲典型编程题(第2版)>剖析了80个典型的编程面试题,系统整理基础知识.代码质量.解题思路.优化效率和综合能力这5个面试要点.<剑指Offer:名企面试官精讲典型编程题(第2版)>共分7章,主要包括面试的流程,讨论面试每一环节需要注意的问题:面试需要的基础知识,从编程语言.数据结构及算法三方面总结程序员面试知识点:高质量的代码,讨论影响代码质量的3个要素(规范性.完整性和鲁棒性),强调高质量代码除完成基本功能外,还能考虑特殊情况并对