function printArray(arr){
for(var i in arr){
if(arr[i] instance of Array){
printArray(arr[i]);
}else{
document.write(arr[i]+' ');
}
}
}
var data=[1,[20,21],[[301,302],[310,[311]]];
printArray(data);
上述代码运行后,页面输出结果为?
答:1 20 21 301 302 310 311
函数printArray 使用了递归方式,逐一输出数组中的每个成员,中间可以用空格隔开
instanceof运算符使用来测试一个对象在其原型链中是否存在一个构造函数的prototype属性
什么是栈?
栈是一种运算受限的线性表,期限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对的把另一端称为栈底。向一个栈插入新元素又称作进栈,入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素称为新的栈顶元素
push,从最末尾压入
pop,从末尾删除
shift,从首删除
unshift 从首压入
什么是正则表达式?如何使用正则表达式?
正则表达式本身就是一个字符串,由一些普通字符串和特殊字符串组成的,用以描述一种特定的字符规则的表达式
在JavaScript中正则表达式的应用分为两种;
1,结合string对象的replace search match方法实现对字符串的替换,查找和匹配;
2,定义正则表达式对象,实现对字符串的复杂匹配操作。
var regexp=/do/ig;
var data='He does told to Do,do.';
console.log(data.search(regexp));
输出16
代表字母边界
ig通常连在一起
表示不区分大小写。g表示从头到尾都查找。
search表示找到后返回下标
阅读如下代码
function add(num){
try{
num=Number(num);
if(isNaN(num){
throw new Error(‘Argument is NaN’);
}
console.log('try block end');
}catch(e){
console.log('catch block');
return;
}finally{
console.log('finally block');
}console.log('function end');
}
add('10x');
问 上述代码运行后,输出结果为?
答案:
先输出 catch block ;在输出finally block
因为,try catch语句是一个用作异常处理的语句,当程序出错以后会走执行catch
所以输出catch block;
而finally 始终都会运行,因此会继续输出。 当程序发生异常的时候,将推出,因此不会再执行其他语句。