zoukankan      html  css  js  c++  java
  • Web前端笔试整理10

    下列说法正确的是

    • 使用Object.assign(obj1, obj2)可以实现对象的浅拷贝
    • for ... in 循环只能遍历对象上的可枚举属性
    • Object。keys( ) 不可以遍历出对象原型链上的属性

    ES5 引入了Object。keys方法, 成员是参数对象自身的(不含继承的)所有可遍历(enumerable)属性的键名。
    for ... in循环对象的所有枚举属性(包括原型上), 然后在使用hasOwenProperty()方法来忽略继承属性

    严格模式

    1. this不再强制封装为一个对象, 若没有指定this的话则是indefined。
    2. 给一个未声明的变量赋值会触发ReferenceError错误, 而不再自动声明为全局变量
    3. 给对象的不可写属性或只读属性赋值, 给不可拓展的对象新属性赋值, 试图删除对象中不可删除的属性会抛出TypeError错误, 而不再静默失败
    4. 对象属性重名, 函数参数重名均为语法错误
    5. 无法使用以0开头的八进制表示数字的语法
    6. 为原始值设置属性将抛出TypeError错误
    7. 禁用with语法
    8. 禁止删除声明的变量
    9. 函数中arguments对象的属性值与函数参数值不再同步改变
    10. 增加了一些保留字无法被作为变量名或形参名使用

    == 比较

    null == undefined
    0.1 + 0.2 == 0.3
    typeof NaN
    typeof Function
    typeof Object
    typeof {}
    'a' + 1
    'a' - 1
    Function instanceof Object
    Object instanceof Function
    

    true
    false
    'number'
    'function
    'function'
    'object'
    'a1'
    NaN
    true
    true

    0.1 + 0.2 是一个无线接近 0.3的值, 它不等于0.3

    在JavaScript中的二进制的浮点数0.1和0.2并不是十分精确,在他们相加的结果并非正好等于0.3,而是一个比较接近的数字 0.30000000000000004 ,所以条件判断结果为false

    严格模式和this指针

    'use strict'
    var name = 'Jay'
    var person ={
        name : 'Wang',
        pro:{
            name:'Michael',
            getName:function(){
                    return this.name;
            }    
        }
    }
    console.log(person.pro.getName());
    var pepole = person.pro.getName;
    console.log(pepole());
    

    'Michael'
    throw Error

    person.pro调用了getName(), getName()里面的this指向了personpro, 所以这里this.name = ‘Michael’

    将person.pro.getName方法赋给了pepole, 然后再全局执行上下文中调用了people() 因为是在严格模式下执行, 所以pepole()是指向undefined, undefined又获取name属性, 最后导致报错

    严格模式不同(再记忆一次)

    • 不允许不适用var关键字去创建全局变量, 抛出ReferenceError
    • 不允许对变量使用delete操作符, 抛ReferenceError
    • 不可对对象的只读属性赋值, 不可对对象的不可配置属性使用delete操作符, 不可为不可拓展的对象添加属性, 均抛TypeError
    • 对象属性名必须唯一
    • 函数中不可有重名参数
    • 在函数中不可有重名参数
    • 在函数内部对修改参数不会反应到arguments中
    • 淘汰arguments.callee和arguments.caller
    • 不可在if内部声明函数
    • 抛弃with语句
  • 相关阅读:
    数据库系统概论习题集 第八章 数据库并发控制
    数据库系统概论习题集 第七章 数据库恢复技术
    数据库系统概论习题集 第六章 数据库设计
    数据库系统概论习题集 第五章 关系数据理论
    数据库系统概论习题集 第四章 关系系统及其优化
    数据库系统概论习题集 第三章 SQL语言
    【转载】【笔记】vue-router之路由传递参数
    【Dos】复制指定文件夹下所有文件到另外指定文件夹下
    【转载】Vue.js 安装及其环境搭建
    【转载】解决:'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  • 原文地址:https://www.cnblogs.com/xiaoxu-xmy/p/13667802.html
Copyright © 2011-2022 走看看