冒泡排序
var arr = [5,8,3,6,9]
for(var i=0;i<arr.length;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
var temp
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
} }
}
console.log(arr)
//temp是中间变量,把要交换的第一个元素arr[j]赋值给中间变量,也是把第一个元素存储起来
//第二个元素赋值给第一个元素,因为第一个元素我们已经存储在中间变量中了,所以我们不用担心它的值会被覆盖掉
//temp存储了第一个元素的值,把它赋值给第二个元素,就是把第一个元素赋值给第二个元素了,到这一步,两个元素已经交换位置了
编程实现IndexOf方法
	var brr=[5,9,6,3,2,5];
function indexfun(arr,val){
for(var i=0;i<arr.length;i++){
if(arr[i]==val){
return i;
}
}
return -1;
}
console.log(indexfun(brr,13));
写一个方法实现parseInt函数 将字符串转化成整型
function _parseInt(str, radix) {
let str_type = typeof str;
let res = 0;
if (str_type !== 'string' && str_type !== 'number') {
// 如果类型不是 string 或 number 类型返回NaN
return NaN
}
// 字符串处理
str = String(str).trim().split('.')[0]
let length = str.length;
if (!length) {
// 如果为空则返回 NaN
return NaN
}
if (!radix) {
// 如果 radix 为0 null undefined
// 则转化为 10
radix = 10;
}
if (typeof radix !== 'number' || radix < 2 || radix > 36) {
return NaN
}
for (let i = 0; i < length; i++) {
let arr = str.split('').reverse().join('');
res += Math.floor(arr[i]) * Math.pow(radix, i)
}
return res;
}
编写一个函数,将url后的参数串解析成hash形式的对象、
var url = "http://www.taobao.com/index.php?key0=0&key1=1&key2=2...";
var obj = parseQueryString(url);
console.log(obj)
function parseQueryString(argu){
  var str = argu.split('?')[1];
  var result = {};
  var temp = str.split('&');
   for(var i=0; i<temp.length; i++){
var temp2 = temp[i].split('=');
result[temp2[0]] = temp2[1];
  }
   return result;
}
将首字母大写
function titleCase(str){
var a = str.toLowerCase().split(' ');
var b = a.map(function(val){return val.replace(val.charAt(0),val.charAt(0).toUpperCase())})
return b.join(' ');
}

  

求二维数组所有数的和(封装函数)
function sum(arr){
  var total=0;
  for(var i=0;i<arr.length;i++){
    for(var j=0;j<arr[i].length;j++){
      total+=arr[i][j]
    }
  }
  return total;
}
编写一个方法 求一个字符串的字节长度
假设: 
一个英文字符占用一个字节,一个中文字符占用两个字节 
function GetBytes(str){
var len = str.length;
var bytes = len;
for(var i=0; i<len; i++){
if (str.charCodeAt(i) > 255) bytes++;
}
return bytes;
}
alert(GetBytes("你好,as"));
编写一个方法 去掉一个数组的重复元素 
var arr = [1 ,1 ,2, 3, 3, 2, 1];
Array.prototype.unique = function(){
var ret = [];
var o = {};
var len = this.length;
for (var i=0; i<len; i++){
var v = this[i];
if (!o[v]){
o[v] = 1;
ret.push(v);
}
}
return ret;
};
alert(arr.unique());
千分符
var str2=46548978911;
function qianff(str){
var strn=str.toString(),
len=strn.length,
ind=len%3,
//console.log(strn)
newstr=strn.substr(0,ind);
console.log(newstr);
if(ind==0){
newstr=strn.substr(0,3);
ind=3;
//console.log(newstr);
}
for(i=ind;i<len;i=i+3){
newstr+=","+strn.substr(i,3);
}
return newstr;
}
console.log(qianff(str2))

快速排序

        function quickSort(arr){
//如果数组<=1,则直接返回
if(arr.length<=1){return arr;}
var pIndex=Math.floor(arr.length/2);
//找基准,并把基准从原数组删除
var result=arr.splice(pIndex,1);
//定义左右数组
var left=[];
var right=[]; //比基准小的放在left,比基准大的放在right
for(var i=0;i<arr.length;i++){
if(arr[i]<=result){
left.push(arr[i]);
}
else{
right.push(arr[i]);
}
}
//递归
return quickSort(left).concat(result,quickSort(right));
}
console.log(quickSort([1,89,56,4,2,2]))

输出执行顺序:

Promise代码then之前的代码会立即执行。

then之后会放入微任务执行
then里边的代码是回调
交给异步模块处理

  未完待续>>>

温故而知新~

web前端总结面试问题<经常遇到的手写代码>的更多相关文章

  1. web前端总结面试问题<CSS&HTML问题>

    一个父元素div,一个未知宽度.高度的子元素div [上下左右居中方法总结] //1.position布局,position设为absolute,其他同情景一 2.display:table 父级元素 ...

  2. web前端工程师面试技巧 常见问题解答

    web前端工程师面试技巧 常见问题解答 每年的春招是各企业需求人才的黄金时期,不少的前端大牛或者前端新手在面试时候不知道怎么来回答面试官的问题,下面来看下我转载的这篇文章吧,希望对从事前端工作的你有所 ...

  3. Web前端开发面试技巧

    Web前端开发面试技巧 面试前端工程师对我来说是一件非常有意思的事,因为面试过程很大程度上也是自我提升的过程.无论大公司还是小公司,之所以在如何招聘到真正有能力的,前端工程师方面会遇到同样的问题. 近 ...

  4. Web 前端之HTML和CSS

    Web 前端之HTML和CSS HTML被称为超文本标记语言(Hyper Text Markup Language),它不是一种编程语言,而是一种标记语言,标记语言是一套标记标签,HTML使用标记标签 ...

  5. 2015腾讯暑期实习生 Web前端开发 面试经历

    [2015腾讯暑期实习生 Web前端开发 面试经历] 好吧,首先声明,我被刷了,应该是跪在二面 微信查到的面试状态一直呈现复试中 .. 整整四天了.. 看来是没希望了 不过也是一次经历,记录一下还是可 ...

  6. Web前端开发如何利用css样式来控制Html中的h1/h2/h3标签不换行

      H1/H2/H3/H4标题标签常常使用在一个网页中唯一标题.重要栏目.重要标题等情形下. H1在一个网页中最好只使用一次,如对一个网页唯一标题使用.H2.H3.H4标签则可以在一个网页中多次出现, ...

  7. 好程序员web前端分享12个CSS高级技巧汇总

    好程序员web前端分享下面这些CSS高级技巧,一般人我可不告诉他哦. 使用 :not() 在菜单上应用/取消应用边框 给body添加行高 所有一切都垂直居中 逗号分隔的列表 使用负的 nth-chil ...

  8. 好程序员web前端开发测验之css部分

    好程序员web前端开发测验之css部分Front End Web Development Quiz CSS 部分问题与解答 Q: CSS 属性是否区分大小写? <p><font si ...

  9. Web前端技术研究:Css hack技术---令人沮丧的技术

    我最近想好好整理下csshack技术,但是结果很沮丧,下面我将我最初写的笔记和大家分享下. 我在单位整理的研究笔记: 不同的浏览器对某些CSS代码解析会存在一定的差异,因此就会导致不同浏览器下给用户展 ...

  10. WEB前端性能优化:HTML,CSS,JS和服务器端优化

    对前端开发工程师来说,前端性能优化的重要性是不言而喻的,最为大家所知的是YSLOW的23条优化规则,在我的理解中,性能优化不纯粹是指用户访问网站的速度,也包括开发的效率,这里我总结下我理解中的WEB前 ...

随机推荐

  1. 统计学中的P值与显著性的意义

    统计学意义(p值) 结果的统计学意义是结果真实程度(能够代表总体)的一种估计方法.专业上,p值为结果可信程度的一个递减指标,p值越大,我们越不能认为样本中变量的关联是总体中各变量关联的可靠指标.p值是 ...

  2. linux 安装和卸载软件

    安装: apt-get install cups-pdf 卸载:apt -get remove cups

  3. JavaScript专题

    1. 在ajax的任何回调方法中,比如success回调,使用return,将会无效 2. //todo

  4. 使用错误的操作系统用户exp数据导致ORA-15186错误

    生产环境alert日志中出现如下错误:Fri Dec 30 14:28:28 2016Errors in file XXXXXX.trc:ORA-15186: ASMLIB error functio ...

  5. 「C基础」位运算

    0. 原码.补码.反码 初学者只做了解即可 见 张子秋的博客 无论正负数,在内存中存储的都是补码 正数:反码 == 原码 == 补码 负数:反码 == ~原码 补码 == 反码+1 1. & ...

  6. Android(java)学习笔记24:自定义异常类

    1. 自定义异常: 考试成绩必须在0-100之间 很明显java没有对应的异常,需要我们自己来做一个异常 自定义异常 继承自Exception 继承自RuntimeException 下面是一个代码示 ...

  7. 【[SCOI2009]粉刷匠】

    这好像是个暴力? 但是跑的挺快的 我们设\(dp[i][j][k]\)表示在第\(i\)行我们最远染到的位置是\(j\),这一行上一共染了\(k\)次最多能染对多少个格子 理性分析一下啊,每一行最多也 ...

  8. luogu P1710 地铁涨价

    嘟嘟嘟 一道最短路好题. 首先明确一点,把一条边的边权变成2,等于删去这条边.因为变成2后最短路肯定不会经过这条边,就相当于删去这条边了. 所以题目变成了依次删去Q条边,求每一次删完边后有几个点的最短 ...

  9. Android学习笔记_72_Spinner的用法

    一.普通 1. <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android= ...

  10. C# http post、get请求

    public string HttpPostJson(string Url, string paramData, Dictionary<string, string> headerDic ...