错题集选择题1

1、【错误点对象的属性调用

  题目:

     const a = {};
        const b = { key : "b" }
        const c = { key : "c" }
        //对象调用属性[属性-->键名],键名为字符串类型
        //而此时的b为对象转换为字符串类型(用toSring方法) --> "[object Object]" = 123 
        //同理 c --> "[object Object]" = 456
        //对象中的属性同名覆盖 --> 456
        a[b] = 123;
        a[c] = 456;
        console.log(a[b]) //456

 

2、【错误点函数直接调用

  题目:

     //函数直接调用,this --> window,参数未传进去,函数默认返回值为undefined
        function Person(firstName, lastName) {
            this.firstName = firstName;
            this.lastName = lastName;
        }
        const lydia = new Person("Lydia", "Hallie");
        const sarah = Person("Sarah", "Smith");
        console.log(lydia); //Person {firstName: "Lydia", lastName: "Hallie"}
        console.log(sarah); //undefined

 

3、【错误点对 == 的判断

  题目:

     // == 如果两边是引用数据类型,则判断地址是否相同,不同则false
        function checkAge(data) {
            if (data === { age: 18 }) {
                console.log("You are an adult!");
            } else if (data == { age: 18 }) {
                console.log("You are still an adult.");
            } else {
                console.log(`Hmm.. You don't have an age I guess`);
            }
        }
        checkAge({ age: 18 }); //`Hmm.. You don't have an age I guess`

 

4、【错误点严格模式(官方文档):https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Strict_mode

  题目:

     //严格模式下无法再意外创建全局变量,严格模式中意外创建全局变量被抛出错误替代(ReferenceError)
        //ReferenceError (引用错误),对象代表当一个不存在的变量被引用时发生的错误
        //TypeError (类型错误),对象用来表示值的类型非预期类型时发生的错误
        //当传入函数的操作数或参数的类型并非操作符或所预期的类型时,将抛出一个类型错误
        function getAge() {
            "use strict";//严格模式
            age = 21;
            console.log(age);
        }
        getAge(); // ReferenceError

 

5、【错误点eval()函数

  题目:

     //eval()函数计算JavaScript字符串,并把它作为脚本代码执行
        //如果参数是一个表达式,evel()函数将执行表达式。如果参数是JavaScript语句,evel()将执行JavaScript语句。
        const sum = eval("10*10+5"); //Number()-->105

 

6、【错误点const声明常量的本质 (参考文档):https://www.cnblogs.com/minigrasshopper/p/9144223.html

 

  题目:

     //JS使用const声明常量的本质:const实际保证的并不是变量的值不能改动,而是变量指向的那个内存地址不得改动,
        //对于符合类型的数据(主要对象跟数组),变量指向的内存地址,保存的只是一个指针,
        //const只能保证这个指针是固定的,至于它指向的数据结构是不是可变的,就完全不能控制了。
        const obj = { a: "one", b: "two", a: "three" };
        //虽然地址不能改变,但是对象本身是可变的,所以依然可以为其添加新属性
        //同名属性,值会覆盖
        console.log(obj); //{ a: "three", b: "two" }

 

7、【错误点全局执行上下文 (参考文档):https://www.cnblogs.com/forcheng/p/12960972.html

  题目:

 

     //在全局环境(全局执行上下文)中(在任何函数体外部的代码),this始终指向全局对象
        //JavaScript全局执行上下文为你创建了两个东西:全局对象和this关键字(正确

 

 

 

8、【错误点数据类型 (官方文档):https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Data_structures

  题目:

     //基本数据类型(原始类型):number、string、boolean、undefined、null、Symbol(ES6新增一种数据类型)[最新定义有7种还有BigInt]
        //引用类型:object、function
        //js的基本数据类型有几个?(D)
        //A.3   B.4   C.5    D.6

 

posted @ 2021-10-16 16:35  12345上山打老虎1  阅读(34)  评论(0)    收藏  举报