2.面向对象的特征是: 封装性,继承性,多态性。
3.类的继承使用 extends 关键字。
4.用于访问和调用对象在父类上的方法的关键字是 super。
二、判断题
1.如果一个类中没有编写constructor()方法,类中会自动创建一个constructor()构造方法。(√)
2.在类中定义方法时,需要使用function关键字。(√)
3.继承指的是隐藏内部的实现细节,只对外开放操作接口。(×)
4. ES6增加了Class关键字,用来定义一个类。(√)
三、选择题
1.下列选项中,不是面向对象的特征的是(B )。
A.封装性 B.跨平台性 C,继承性D.多态性
2.下面关于类的描述,错误的是(D )。
A、在命名习惯上,类名使用首字母大写的形式
B.class Person()表示定义一个Person类
C.在JavaScript中,子类可以继承父类的一些属性和方法,在继承以后还可以增加自己独有的属性和方法
D.super 关键字只能调用父类的构造方法
一、填空题
1在原型对象里面有一个 constructor 属性,该属性指向了构造函数。
2直接通过函数名调用函数时,this指向的是 全局对象 。
3.利用JavaScript提供的两种方式可以手动控制 this的指向,它们分别是_apply()和call()。
4. bind() 方法的含义是绑定,用于在调用函数前指定this 的含义,实现提前绑定的效果。
5除了在JavaScript程序出现错误时自动抛出错误对象用户也可以使用—throw_关键字手动抛出错误对象。
6在错谈处理中 EvalError 表示调用eval()函数错误。
二、判断题
1.构造函数主要用来创建对象,并为对象的成员赋初始值。(√)
2.在JavaScript 中,母个对象都有一个__proto_属性,这个属性指向了对象的原型对象。(√ )
3.bind()方法的含义是绑定,用于在调用函数前指定this的含义,实现提前绑定的效果。(√)
4.每个构造函数都有一个prototype属性指向原型对象,原型对象通过constructor属性指向构造函数。(√)
三、选择题
1.下列选项中,描述错误的是( B)。
A. __proto__是一个标准的属性
B.每个对象都有一个__proto___属性
C.通过实例对象的 constructor属性就可以访问实例对象的构造函数
D.原型对象也是对象
2.下列选项中,不能用来改变this指向的是(C)。
D. bind()
C. method()
B. call()
A. apply()
3.下列选项中,描述错误的是(B )。
A.使用构造方法创建对象虽然很简单、方便,但是与类存在一定的区别
B.在静态方法中不能使用this访问实例对象,因为静态方法与实例对象有关联
C在面向对象中有静态成员和实例成员的概念,实例成员是指实例对象的成员
D.在JavaScript中,每个构造函数都有一个原型对象存在
4. Obiect的原型对象的proto属性为(A)。
A. null B. undefined C. NaN D. String
5.关于对象继承下列描述错误的是(D )。
A.在ES6中,继承是通过定义两个类,然后子类用extends关键字继承父类实现的
B. ES6提供了class语法用来定义类
C.类和构造函数的使用非常相似,不可以互相替代
D.若要实现子类继承父类的方法,不能直接将父类原型对象赋值给子类原型对象
一、填空题
1.ES的全称是_ECMAScript_,它是由 ECMA国际标准化组织制定的一项脚本语言的标准化规范。
2.使用let关键字声明的变量具有__块级_作用域。
3.在ES6中可以使用_const_关键字声明一个常量。
4._箭头函数_中的this关键字指向的是函数定义位置的上下文 this。
5.数组中的 find() 方法用于找出第一个符合条件的数组成员,如果没有找到返回undefined。
二、判断题
1.利用var声明的变量会绑定在块级作用域,不会受外界的影响。( ×)
2.使用const关键字声明常量的时候必须要给定值。(√)
3.解构赋值是把数据结构分解,然后对变量赋值。(×)
4.数组实例中的includes()方法可以判断其个组具不句令公宁的值返回布尔值。(√)
5.字符串实例endsWith)方法表示参数字符串是否在原字符串的头部,返回布尔值。(× )
三、选择题
1.下列选项中,不属于let关键字特点的是( C)
A. let关键字声明的变量只在所处的块级作用域有效
B. let关键字声明的变量不存在变量提升
C. let关键字声明的变量具有局部作用域
D. let关键字声明的变量具有暂时性死区特性
2.下列选项中,说法错误的是(D )。
A.使用var关键字声明的变量存在变量提升现象
B.使用let关键字声明的变量不存在变量提升现象
C.使用const关键字声明的常量不存在变量提升现象
D.使用var关键字声明的变量只能先声明后使用
3.下列选项中,关于箭头函数的说法错误的是(C)。
A.如果函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号
B.如果形参只有一个,可以省略小括号
C.箭头函数绑定this 关键字
D.箭头函数中的this关键字指向的是函数定义位置的上下文this
4.下列选项中,关于扩展运算符说法错误的是( B)。
A.扩展运算符可以将数组或者对象转为用冒号分隔的参数序列
B.扩展运算符可以将可遍历对象转换为真正的数组
C.扩展运算符可以应用于合并数组
D.扩展运算符可以将伪数组转换为真正的数组
四、程序分析题
1.阅读如下代码,试分析最后的运行结果是多少。<script>
let arr =[ ];
for (let i=0;i<2;i++){
arr[i]= function (){
console.log(i);
};
}
arr[0]();
arr[1]();
</script>
0,1
2.阅读如下代码,试分析最后的运行结果是多少。
<script>
var age =100;var obj ={
age: 20,
say:()=>{
alert(this.age);
};
obj.say ();
</script>
100
五、简答题
1.请简述let关键字声明变量的特点。
2.请简述const关键字声明常量的特点。
3.请简述暂时性死区的概念。
4.请简述箭头函数的特点。
1.①在使用let声明的变量,只有在 let所在的代码块中起作用。
在同一代码块内(块级作用域)使用let声明的变量可以重新赋值,但是不能重新声明.
let 声明的变量少须在声明之后才能使用。
皙时性死区.
在全局作用城或内使用Let声明的夜量不属于全局对象的属性。
2.一定要赋初始值.
一般常量名使用大写.
常量的值不能修改.
const和 let一样,是个块级作用域。
3.在同一个作用域中,在const ,let声明变量之前使用变量,该区域称为暂时性死区.
4.箭头函数使表达更加简洁.隐式返回值.
箭头函数没有自己的this.
不能使用arguments,用rest参数解决
不能当作构造函数使用.不能使用new.