【选择题】8
【问答题】1
【编程题】2
【选择题】
1.下面哪些选项属于JavaScript宏任务?(CD)
A.promise
B.async/await
C.主代码块
D.setTimeOut
宏任务:浏览器发起的任务
微任务:js引擎自己发起的任务
1、js宏任务有:
2.下面关于Javascript中箭头函数描述正确的是(CD)
A.可以使用函数内置的arguments对象获取函数
B.可以使用yield指令
C.在使用=>定义函数的时候,继承当前上下文this关键字
D.不能够使用构造方法(不能使用new命令,否则会抛出错误)
关于箭头函数:
1.不可以当做构造函数使用,因为没用自己的this,arguments等
2.不可以使用yield指令
3.不绑定this:没有自己的this对象,内部的this就是定义时上层作用域中的this对象(箭头函数内部的this是固定的,普通函数的是可变的)
3.Javascript有哪些基本数据类型?(ABC)
A.Boolean
B.Null
C.Object
D.Function
1、String
2、Number
3、Boolean
4、Null
5、Undefined
4.JavaScript中,DOM事件监听器注册到父元素,子元素点击后,点击事件会被触发父元素的事件监听回调吗?(A)
A.会
B.不会
冒泡
5.JavaScript调用数组哪些方法,不会修改数组?(ABD)
A.map
B.forEach
C.sort
D.concat
A.arr.map((item)=>{ return xx})返回创建的一个新数组
B.arr.forEach((item)=>{这里不做改变就不会修改数组})没有返回值意义
C.排序,会修改
D.合并数组,返回两个数组合并后的副本,不会改变两个原数组
6.下面情况下js可能出现内存泄漏情况(AB)
A.定时器未清除
B.DOM清空时,还存在引用
C.使用箭头函数
D.频繁操作DOM
1.意外的全局变量
2.定时器未清除
3.没有清理对DOM元素的引用
7.【单选】下面哪种方式可以直接获取到一个div的dom节点?©
A.document.getElementByClass(“two”)
B.document.getByTagName(“three”)
C.document.getElementById(“one”)
通过ID获取(getElementById)
通过name属性(getElementsByName)
通过标签名(getElementsByTagName)
通过类名(getElementsByClassName)
通过选择器获取一个元素(querySelector)
通过选择器获取一组元素(querySelectorAll)
获取html的方法(document.documentElement)
获取body的方法(document.body)
8.下面哪些属于JavaScript严格模式的限制?(ACD)
A.不能使用未声明的变量
B.给NaN赋值会抛出异常
C.函数的参数名必须唯一
D.进制自定义函数的this指向window
1.禁止不标准的全局变量(未使用var)
2.禁止使用with语句
3.禁止使用eval
4.禁止this关键字指向全局对象
5.禁止在函数内部遍历调用栈
6.禁止删除变量
7.对象不能有重命名属性
8.函数不能有重命名参数
9.禁止八进制表示法
10.不能对arguments赋值
11.arguments不再追踪参数的变化
12.禁止使用arguments.callee
13.严格模式只允许在全局作用域或函数作用域的顶层声明函数。也就是说,不允许在非函数的代码块内声明函数。14.不能使用某些保留字:implements, interface, let, package, private, protected, public, static, yield。
【问答题】
this指向
var num =222;
var a={
num:111,
say: function () {
console.log(this.num)
}
}
var fn= a.say
fn()//输出一
a.say()//输出二
var b={
num:333,
say:function (fn) {
fn()
}
}
b.say(a.say)//输出三
b.say = a.say
b.say()//输出四
222
111
222
333
this动态指向当前函数的运行环境。即,在不同场景中调用定义的同一个函数,this的指向也不同。
this永远指向其所在函数的真实调用者,如果没有,则指向全局对象window
【编程题】
1.打印 :
每一行最后都没有多余的空格,最后一行没有空格和换行。
public class Solution {
// 请按你的实际需求修改参数
public static char[] F(int height) {
char []a=new char[height*(2*height-1)];
for (int row=0;row<height;row++){
for(int i=0;i<height-row-1;i++){
a[row*(2*height-1)+i]=' ';
a[row*(2*height-1)+2*height-2-i]=' ';
}
for(int i=height-row-1;i<height+row;i++){
a[row*(2*height-1)+i]='*';
}
if(row!=height-1){
a[row*(2*height-1)+2*height-2]='\n';
}
}
return a;
}
}
2.括号匹配:只有”()“
public class Solution {
// 请按你的实际需求修改参数
public static boolean validParentheses(String parens) {
// 在这⾥写代码
int k=0;
for(int i=0;i<parens.length();i++){
if(parens.charAt(i)=='('){
k++;
}
if(parens.charAt(i)==')'){
if(k!=0)
k--;
else
return false;
}
}
if(k!=0)
return false;
return true;
}
}