1.已知有字符串foo=”get-element-by-id”,写一个function将其转化成驼峰表示法”getElementById”
var str="get-Element-by-id";
function combo(msg){
//通过指定分隔符对字符串进行切片,返回数组
var arr=msg.split("-");
for(var i=1;i<arr.length;i++){
arr[i]=arr[i].charAt(0).toUpperCase()+
arr[i].substr(1,arr[i].length-1);
//charAt()返回指定位置的字符
//substr可在字符串中抽取从start,开始的字符串
}
//把数组中的所有元素放入一个字符串中,返回字符串
msg=arr.join("");
return msg;
}
console.log(combo(str));
2.已知数组 var stringArr = [“This”,“ is”, “Baidu”, “Campus” ], Alert出 “This is Baidu Campus”;
var stringArr=["This","is","my","house"];
alert(stringArr.join(" "));//This is my house
3.输出今天的日期,以YYYY-MM-DD的方式,比如今天是2014年9月26日,则输出2014-09-26;
var d=new Date();
var year=d.getFullYear();//获取年
var month=d.getMonth()+1;//获取月,年份比较特殊,0是1
var date=d.getDay()-1;
var t=year.toString()+"-"+"0"+month.toString()+"-"+"0"+date.toString();
console.log(t);
4.将字符串”{KaTeX parse error: Expected 'EOF', got '}' at position 3: id}̲</td><td>{name}”中的{KaTeX parse error: Expected 'EOF', got '}' at position 3: id}̲替换成10,{name}替换成Tony (使用正则表达式)
"<tr><td>{$id}</td><td>{$name}</td></tr>".replace(/{\$id}/g,'10').replace(/{\$name}/g,'Tony');
//其中“\”是表示匹配后面的内容
5.为了保证页面输出安全,我们经常需要对一些特殊的字符进行转义,请写一个函数escapeHtml,将<, >, &, “进行转义
function escapeHtml(str) {
return str.replace(/[<>”&]/g, function(match) {
switch (match) {
case '<':
return "<";
case '>':
return ">";
case '&':
return "&";
case "\" ":
return "”";
}
});
}
6.foo = foo||bar ,这行代码是什么意思?为什么要这样写?
- 如果foo存在,值不变,否则把bar的值赋给foo
- 短路表达式:这些表达式在进行求值的时候,只要知道最终的结果,就可以判断是真还是假,求值过程便结束了,称为短路求值;
7.变量声明提升
var foo=1;
(function(){
console.log(foo);//undefined
var foo=2;
console.log(foo);//2
})
变量提升:函数声明与变量声明被JavaScript引擎隐式地提升到当前作用域的顶部,但是只提升变量不会提升赋值部分
8.用js实现随机选取10–100之间的10个数字,存入一个数组,并排序。
//1.定义一个空数组
var Array=[];
//定义并封装一个getRandom函数
function getRandom(num1,num2){
var transition=num2-num1+1;//这里面的加1是为了能够取到num2
//floor是一个向下取舍的函数
var res=Math.floor(Math.random()*transition+num1);
return res;
}
for(var i=0;i<10;i++){//随机取10~100之间的十个数
Array.push(getRandom(10,100));//将取得的数放在数组中
}
Array.sort(function(a,b){//对数组里面的数进行排序
return a-b;
})
console.log(Array);
9.把两个数组合并,并删除第二个元素
var array1=['a','b','c'];
var bArray=['d','e','f'];
//concat用于连接两个数组
var cArray=array1.concat(bArray);
//splice:删除元素
cArray.splice(1,1)
10.写一个function,清楚字符串前后的空格。
if(!String.prototype.trim){
//prototype向对象添加属性和方法
//trim去除字符串头尾的空格
String.prototype.trim=function(){
return this.replace(/^\s+/,"").replace(/\s+$/,"");
//\s+:表示匹配任意多个上面的字符
//$是结束符
}
}
var str="\t\n test string".trim();
alert(str=="test string");//true
11.a+b的结果是NaN?
var a=undefined;b=NaN
有且只有这种表达可以满足,因为b是没有声明的,所有NaN起到的效果是连接;