专项练习25

文章包含JavaScript的基础知识测试,涉及类的构造函数、getter方法、表单select元素的选择文本获取以及一个整数反转的编程题。选择题解释了类的属性赋值规则和获取select选项文本的方法,编程题则展示了如何反转整数并考虑负数的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、选择题

    1、执行以下程序,输出结果为()

    2、如何获取下面表单select域的选择部分的文本,其中obj=document.getElemById(“obj”)

    3、请问以下JS代码会做什么样的输出

二、编程题

    1、将整数参数反转之后输出


一、选择题

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类文档

4.3 ES6 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("")

数组合并转字符串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五秒法则

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值