1.分析下面javascript代码:
1 <script> 2 function out(x){ 3 var temp = 2; 4 function inside(y){ 5 document.write( x + y + (temp--)); 6 } 7 inside(5); 8 } 9 out(3); 10 </script>
5+3+temp--(2)=10
2.与浏览列表有关的对象:history screen location Navigator
3.关于 this 的工作原理,
函数里的this可以分为两种来记忆:
如果是使用new方式创建对象,this指向新建的那个对象;
如果只是普通的调用,谁调用这个函数,函数里的this就指向谁~
this有四种情况!
1)当在函数调用的时候指向widow
2)当方法调用的时候指向调用对象
3)当用apply和call上下文调用的时候指向传入的第一个参数
4)构造函数调用指向实例对象
4.以下代码的执行后,str 的值是:
var str = "Hellllo world";
str = str.replace(/(l)1/g, '$1');
var str = "Hellllo world";
str = str.replace(/(l)1/g, '$1');
1指向第一个分组的内容,及是(l)
故表达式变成这样
/(l)1/g === /(l)(l)/g
$1代表第一个分组。
故是这样解析的
往右解析
he(l[$1]l[$2])(l[$1]l[$2])o world
第一次匹配 第二次匹配
hel[$1]l[$1]o world
故表达式变成这样
/(l)1/g === /(l)(l)/g
$1代表第一个分组。
故是这样解析的
往右解析
he(l[$1]l[$2])(l[$1]l[$2])o world
第一次匹配 第二次匹配
hel[$1]l[$1]o world
5.以下哪些方法会返回一个数组?
A.Object.keys()
B.String.prototype.split()
C.Array.prototype.join()
D.Promise.all()
-
A.Object.keys()
该方***返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致 。如果对象的键-值都不可枚举,那么将返回由键组成的数组。 -
B.String.prototype.split()
split() 方法使用指定的分隔符字符串将一个String对象分割成字符串数组,以将字符串分隔为子字符串,以确定每个拆分的位置。
AB选项都是返回数组。
-
C.Array.prototype.join()
join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。
C选项返回字符串。 -
D.Promise.all()
Promise.all(iterable) 方法返回一个 Promise 实例,此实例在 iterable 参数内所有的 promise 都“完成(resolved)”或参数中不包含 promise 时回调完成(resolve);
如果参数中 promise 有一个失败(rejected),此实例回调失败(reject),失败原因的是第一个失败 promise 的结果。
D选项返回的是promise对象。
6.下面匹配整数的正则表达式中,正确的是( )
(-?[1-9]d*)|0