目录
2、如何获取下面表单select域的选择部分的文本,其中obj=document.getElemById(“obj”)
一、选择题
1、执行以下程序,输出结果为()
class Phone{
constructor(price){
this.price = price;
}
get price(){
return 999;
}
}
var p = new Phone(888);
console.log(p.price);
A、999
B、undefined
C、抛出异常
D、888
正确答案:C 你的答案:A
解析:
(1)当类中一个属性只有 get() 方法而无 set() 方法时,该属性是无法进行赋值的,连构造方法中的初始化都不行,因此,当对象的 price 属性在构造方法中进行初始化,会抛出异常
(2)Phone 类只设置了 get 方法,没有设置 set 方法,那么默认 price 属性是只读的,那就不能在 constructor 里再设置 this.price = price
①解决思路1:不在constructor里设置 this.price = price
<script>
class Phone {
constructor(price) {
// this.price = price;
}
get price() {
return 999;
}
}
var p = new Phone(888);
console.log(p.price);//输出:999
</script>
②给这个Phone类添加一个 set 方法
<script>
class Phone {
constructor(price) {
this.price = price;
}
get price() {
return 999;
}
set price(item){
return item
}
}
var p = new Phone(888);
console.log(p.price);
</script>
(3)Class类文档
2、如何获取下面表单select域的选择部分的文本,其中obj=document.getElemById(“obj”)
<form name="a">
<select name="a" size="1" id=”obj”>
<option value="a">1</option>
<option value="b">2</option>
<option value="c">3</option>
</select>
</form>
A、obj.options[obj.selectedIndex].text
B、obj.options[obj.selectedIndex].value
C、obj. value
D、obj.text
正确答案:A
解析:
(1)当前默认选中的是第一个
- obj.options[obj.selectedIndex].text输出text为1
- obj.options[obj.selectedIndex].value输出value为a
(2)获取节点对象
<body>
<form name="a">
<select name="a" size="1" id="obj">
<option value="a">1</option>
<option value="b">2</option>
<option value="c">3</option>
</select>
</form>
<script>
window.onload = function () {
//获得下拉框的节点对象;
var obj = document.getElementById("obj");
console.log('obj',obj);
//1.获得当前选中的值:
var value = obj.value;
console.log('value',value);
//2.获得该下拉框所有的option的节点对象
var options = obj.options;
console.log('options',options);
//注意:得到的options是一个对象数组
//3.获得第0个option的value值:
var value1 = options[0].value;
console.log('value1',value1);
//4.获得第0个option的文本内容:
var text1 = options[0].text;
console.log('text1',text1);
//5.获得当前选中的option的索引
var index = obj.selectedIndex;
console.log('index',index);
//6.获得当前选中的option的文本内容
var selectedText = options[index].text;
console.log('selectedText',selectedText);
}
</script>
</body>
3、请问以下JS代码会做什么样的输出
let a = 'w'
let obj = {
a: 'o',
print: function() {
console.log(this.a);
},
}
let p = obj.print;
obj.print();
p();
A、o、o
B、w、w
C、o、w
D、o、undefined
正确答案:D 你的答案:C
解析:
(1)let a = 'w':与 var 关键字不同,使用 let 在全局作用域中声明的变量不会成为 window 对象的属性,因为 let 声明的变量不会挂载到 window上,所以是 window 下的 a 变量只能是 undefined
(2)obj.print:this 指向的是 obj,所以输出的是 obj 里面的变量 a 的值即 o
(3)p():因为 this 指向无法传递,所以函数 p 的 this 是指向 window
二、编程题
1、将整数参数反转之后输出
示例:_reverse(0) -> 0 _reverse(233) -> 332 _reverse(-223) -> -322
解析:
利用数组 reverse() 反转方法
<script>
let number = -223
function _reverse(number){
if(number >=0){
return Math.abs(number).toString().split("").reverse().join("") * 1
}else{
return Math.abs(number).toString().split("").reverse().join("") * (-1)
}
}
console.log(_reverse(number));
</script>
代码 | 解释 |
---|---|
Math.abs(number) | 取绝对值 |
toString() | 数字转字符串 |
split("") | 字符串拆分转数组 |
reverse() | 数组反转 |
join("") | 数组合并转字符串 |