首页 > 技术文章 > 9.1做JS的题目

smhyu 2020-09-01 17:16 原文

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');
\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   
5.以下哪些方法会返回一个数组?
A.Object.keys()
B.String.prototype.split()
C.Array.prototype.join()
D.Promise.all()
  1. A.Object.keys()
    该方***返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致 。如果对象的键-值都不可枚举,那么将返回由键组成的数组。

  2. B.String.prototype.split()
    split() 方法使用指定的分隔符字符串将一个String对象分割成字符串数组,以将字符串分隔为子字符串,以确定每个拆分的位置。

AB选项都是返回数组。

  1. C.Array.prototype.join()
    join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。
    C选项返回字符串。

  2. D.Promise.all()
    Promise.all(iterable) 方法返回一个 Promise 实例,此实例在 iterable 参数内所有的 promise 都“完成(resolved)”或参数中不包含 promise 时回调完成(resolve);
    如果参数中 promise 有一个失败(rejected),此实例回调失败(reject),失败原因的是第一个失败 promise 的结果。
    D选项返回的是promise对象。

 

6.下面匹配整数的正则表达式中,正确的是( )

 (-?[1-9]\d*)|0

推荐阅读