1、将一段字符串转成驼峰命名法。

var str = "web-kit-index";
function to(str){
var j = str.split("-");
for(var i=1,len=j.length;i<len;i++){
j[i] = j[i].charAt(0).toUpperCase()+j[i].substring(1);
}
return j.join("");
}
console.log(to(str)); 或 function to(str){
var reg = /-(\w)/g;
return str.replace(reg,function(a,b){
return b.toUpperCase();
}) }
console.log(to(str));

 2、判断一段字符串中出现最多的是哪个字符并且出现了多少次?

var str = "wwwwaaaa";
function max(str){
var obj = {};
for(var i=0,len=str.length;i<len;i++){
if(!obj[str[i]]){
obj[str[i]] = [];
obj[str[i]].push(str[i]);
}else{
obj[str[i]].push(str[i]);
}
}
var num = 0,value;
for(var k in obj){
if(obj[k].length>num){
num = obj[k].length;
value = k;
}
}
return "出现最多的是:"+obj[value][0]+" 出现了:"+num+"次";
}
console.log(max(str)); 或 function max(str){
var s = str.split("").sort().join("");
var reg = /(\w)\1+/g;
var num = 0;
var value = null;
s.replace(reg,function($0,$1){
if(num<$0.length){
num = $0.length;
value = $1;
}
})
return "出现最多的是:"+value+" 出现了:"+num+"次";
}
console.log(max(str));

 3、如果有数组,把他们添加到数组中,并且如果是连续的数字那么把它们添加到一起

var str = "js123werw13weragadsg324ererrer5555";
var num = '';
var arr = [];
for(var i=0;i<str.length;i++){
if(!isNaN(+str[i])){
num += str[i];
if(isNaN(+str[i+1])){
arr.push(+num);
num = "";
}
}
}
console.log(arr);

4、给字符串加千分符,每三位加一个,

var str = "13224242311012101";
function san(){
var first = (str.length)%3;
var s = str.substring(0,first);
var reg = str.substring(first);
var arr = [];
if(first!==0){
arr.push(s);
}
var t = "";
for(var i=0;i<reg.length;i++){
t+=reg[i];
if(i%3===2){
arr.push(t);
t = "";
}
}
return arr.join(","); }
console.log(san(str)); function san(str){
var reg = /(?=(?!\b)(\d{3})+$)/g;
return str.replace(reg,",");
}
console.log(san(str));

 5、交换两个字符串的位置,不允许第三个变量

var a = 12;
var b = 20; a = a + b;
b = a - b;
a = a - b; console.log(a);
console.log(b); 或 var str1 = 'love';
var str2 = 'Js';
str1 = [str1,str2];
str2 = str1[0];
str1 = str1[1]; console.log(str1);
console.log(str2); 方法1:只支持数字

 6、不使用for循环实现一个数字的数组排序。

var num = 10;
function a(num){
var arr = [];
return (function(){
arr.unshift(num);
num--;
if(num!=0){
arguments.callee();
}
return arr;
}());
}
console.log(a(num)); [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] function a(num){
var arr = [];
arr.length = num+1;
arr = arr.join("a");
var arr2 = [];
arr.replace(/a/g,function(){
arr2.unshift(num--);
})
return arr2;
}
console.log(a(num)); [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

 7、打乱数组值的顺序

var arr = [1, 2, 3, 4, 5, 6, 7, 8];
function sort(arr){
for(var i=0;i<arr.length-1;i++){
var cur = Math.floor(Math.random()*(i+1));
var tel = arr[i];
arr[i] = arr[cur];
arr[cur] = tel;
}
return arr;
}
console.log(sort(arr));

JavaScript面试库的更多相关文章

  1. JavaScript面试的完美指南(开发者视角)

    为了说明 JS 面试的复杂性,首先,请尝试给出以下结果: onsole.log(2.0 == "2" == new Boolean(true) == "1") ...

  2. 26个精选的JavaScript面试问题

    译者按: 从各个平台精选整理出26道由浅入深的题目助你面试 原文: Top 26 JavaScript Interview Questions I Wish I Knew 译者: Fundebug 为 ...

  3. 攻破javascript面试的完美指南【译】

    攻破javascript面试的完美指南(开发者视角) 0. 前言 本文适合有一定js基础的前端开发人员阅读.原文是我google时无意发现的, 被一些知识点清晰的解析所打动, 决定翻译并记录下来.这个 ...

  4. ABP(现代ASP.NET样板开发框架)系列之21、ABP展现层——Javascript函数库

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之21.ABP展现层——Javascript函数库 ABP是“ASP.NET Boilerplate Project ...

  5. Webix JavaScript UI 库可以帮你构建跨平台的HTML5 和 CSS3 程序

    XB 软件公司最近发布了JavaScript UI 库Webix ,其中包含的组件超过45个,用这些组件可以构建跟HTML5 和 CSS3 兼容的程序,这些程序不仅能在个人电脑上运行,还能用在iOS. ...

  6. JavaScript面试时候的坑洼沟洄——表达式与运算符

    上篇博客JavaScript面试时候的坑洼沟洄--数据类型总结了一下JavaScript数据类型几转换的相关知识,很多朋友可能和我一样,买了书后对数据类型啊.运算符啊.语句啊都是扫两眼或直接略过的,自 ...

  7. JavaScript面试时候的坑洼沟洄——数据类型

    前些日子写了篇关于最近找工作的一些感受的博客 找工作的一些感悟--前端小菜的成长,没想到得到了很多园友的共鸣,得到了很多鼓励,也有园友希望我分享一些笔试.面试的经验.我觉得分享一些笔试题没太多价值,对 ...

  8. ECharts-基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表

    ECharts http://ecomfe.github.com/echarts 基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表.创新的拖拽重计算 ...

  9. 【精心推荐】几款实用的 JavaScript 图形图表库

    一款好的图表插件不是那么容易找到的.最近项目里需要实现统计图表功能,所以在网上搜罗了一圈,找到一些不错的图表插件,分享大家.众多周知,图形和图表要比文本更具表现力和说服力.这里给大家精心推荐几款实用的 ...

随机推荐

  1. Oracle数据库建表+添加数据练习

    SQL脚本: --建表 --student表+注释 create table student( sno ) not null, sname ) not null, ssex ) not null, s ...

  2. Shell获取上一个月、星期的时间范围

    #!/bin/bash date_today=`date -d '1 day ago' +%Y%m%d`   #最近7天 date_befor_7day=`date -d '7 day ago' +% ...

  3. Clojure上手

    Clojure,这是什么鬼?一门基于JVM(现在也有基于.NET CLR的了:Clojure CLR) 的函数式编程语言.在JVM平台运行的时候,会被编译为JVM的字节码进行运算..为什么要学它?其设 ...

  4. C#窗体全屏功能

    最近有朋友让我给他弄个应用程序全屏的功能,例如银行的取号程序界面.所以我从网上查询了一些实现的方法. C#应用程序中如何实现全屏幕显示功能? 效果就像windows自带的屏幕保护程序和众多的游戏那样, ...

  5. Windows 8.1/Server 2012 R2/Embedded 8.1 with Update 3(MSDN最新版)

    微软于12月16日更新了包含Update 3的ISO,此次更新并不会明显改善用户的界面体验,下载后请校验MD5.我整理了中.英文的8.1/服务器版/嵌入式版本/多国语言包. 1,Windows 8.1 ...

  6. AngularJS中实现日志服务

    本篇体验使用AngularJS自定义一个记录日志的服务. 在AngularJS中,服务的一些写法是这样的: var app = angular.module('app',[]); app.provid ...

  7. 【转】編譯Ogre1.9 IOS Dependencies及Ogre Source步驟及相關注意事項…

    http://makedreamvsogre.blogspot.tw/2014/01/ios-dependenciesogre-source.html 可能有人會想問我為什麼要自行編譯IOS Depe ...

  8. iOS:Tools:快速注释Doxygen

    Xcode5有个新特性就是自己定义的函数也会被检测集成到代码提示里面,也就是在Quick Help有提示.如 /** * @brief 设置id * * @param id 要设置的id */ +(v ...

  9. Oracle User Calls 和 Executions 两个概念的区别

    User calls = (User session Login + Parsing within a session + Executions of sql's/Cursors ) per seco ...

  10. Base: 一种 Acid 的替代方案

    原文链接: BASE: An Acid Alternative Pdf下载链接: Base 数据库 ACID,都不陌生:原子性.一致性.隔离性和持久性,这在单台服务器就能搞定的时代,很容易实现,但是到 ...