1、
var arr=[1,2,3,4,5]; arr.splice(1,2,3,4,5);
2、
多维数组转一位数组:原题:[1,[2,3]] ==》 [1,2,3]
var func=function(arr){ if(Object.prototype.toString.call(arr)!=="[object Array]"){ return; } var newArr=[]; var f=function(arr){ for(var i=0,len=arr.length;i<len;i++){ if(arr[i].length){ f(arr[i]); }else{ newArr.push(arr[i]); } } } f(arr); return newArr; }
使用toString()方法来检测对象类型f (注意大小写)
可以通过toString()
来获取每个对象的类型。为了每个对象都能通过 Object.prototype.toString()
来检测,需要以 Function.prototype.call()
或者 Function.prototype.apply()
的形式来调用,把需要检测的对象作为第一个参数传入。
var toString = Object.prototype.toString;
toString.call(new Date); // [object Date]
toString.call(new String); // [object String]
toString.call(Math); // [object Math]
//Since JavaScript 1.8.5
toString.call(undefined); // [object Undefined]
toString.call(null); // [object Null]
判断多维数组:
if(arr[i].length)
3、
// 把字符串转换成驼峰式写法
function func(str){ var arr=str.split("-"); for(var i=0,len=arr.length;i<len;i++){ arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substring(1); } return arr.join(""); }string类型也可以用length获取字符串的长度。var str = "border-left-color";
使用charAt()获取字符串的单个字符(注意:字符串从左向右=0—length-1)
charAt()只能获取,不能修改字符串
var anyString = "Brave new world";
console.log("The character at index 0 is '" + anyString.charAt(0) + "'");
The character at index 0 is 'B'
4、
//查找字符串中出现最多的字符和个数
var str =" fdadffddfdffj"; function func(str){ var obj={}; for(var i=0,len=str.length;i<len;i++){ if(!obj[str[i]]){//不存在 obj[str[i]]=1; }else { obj[str[i]]++; } } var times=0; var strMost=""; for(var i in obj){ if(obj[i]>times){ times=obj[i]; strMost=i; } } console.log(strMost+":"+times); }用for-in遍历非数组对象
5、
//给字符串加千分位
var num = 32123456789.4241; //结果转成千分位表示 123,456,789.9 function func(num) { var numStr=num.toPrecision(); if(numStr.indexOf(".")!==-1){//判断是否为小数 var newNumStr=func1(numStr.split(".")[0])+"."+numStr.split(".")[1]; }else{ var newNumStr=func1(numStr.split(".")[0]); } function func1(str){ var length=str.length; var newStr=""; while(length>3){ newStr=","+str.substring(length-3,length)+newStr; length=length-3; } newStr=str.substring(0,length)+newStr; return newStr; } console.log(newNumStr); } func(num);
substring();
split();
indexOf();
6、
// 如何消除一个数组里面重复的元素
var arr=[1,2,3,3,4,4,5,5,6,1,9,3,25,4]; function func(arr) { var tempArr=[]; for(var i=0,len=arr.length;i<len;i++){ if(tempArr.indexOf(arr[i])===-1){ tempArr.push(arr[i]); } } console.log(tempArr); } func(arr);7、
var a=2; var func=(function(){ var a=3; return function(){ a++; alert(a); } })(); func(); func();
A.3,4 B.4,4 C.4,5 D.undefiend undefined
选择C。
匿名函数、作用域。
8、
下面代码执行后,arr的值是
var arr=[{a:1},{}]; arr.forEach(function(item,idx){ item.b=idx; });
选择B。
9、
以下代码执行后,a的值是:
var a="HelloWorld".split("").sort().join("");A."HelloWorld"
B."deHllloorW"
C."roollledWH"
D."HWdellloor"
答案为D
10、
以下代码执行时,alert分别输出什么值
(function(){ this.a=5; alert(window.a); var a=1; alert(a); })();A.undefined,1
B.5,1
C.1,1
D.1,undefined
答案为B
11、
代码一:
var name="people"; function Person(name){ this.name=name; } var p=Person("p1");代码二:
var name="people"; function Person(name){ this.name=name; } var p=new Person("p2");请问以上两段代码运行后,name和p的值分别是什么,并描述具体原因。
代码一:name返回”p1“,p返回undefined。
因为运行person("p1")时在全局作用域,所以内部this指的是全局上下文,所以改变了name的指。
又因为函数默认返回是undefined所以,p的值为undefined。
代码二:name返回“people”不变,p返回Person的实例对象。
因为此时的p为Person的一个实例,所以this指代的是p这个实例对象,所以name不变。
12、
写出javascript运行结果:
for(var i=0; i<10; i++){} alert(i);
结果为10,因为i为全局变量。
13、
用CSS实现一个不定宽高的DIV水平垂直方向居中。