美文网首页
js 基础知识问答

js 基础知识问答

作者: 罗斯福 | 来源:发表于2020-01-03 19:26 被阅读0次
    问题一:
    var object = {}
    object.__proto__ ===  ????填空1????  // 为 true
    
    var fn = function(){}
    fn.__proto__ === ????填空2????  // 为 true
    fn.__proto__.__proto__ === ????填空3???? // 为 true
    
    var array = []
    array.__proto__ === ????填空4???? // 为 true
    array.__proto__.__proto__ === ????填空5???? // 为 true
    
    Function.__proto__ === ????填空6???? // 为 true
    Array.__proto__ === ????填空7???? // 为 true
    Object.__proto__ === ????填空8???? // 为 true
    
    true.__proto__ === ????填空9???? // 为 true
    
    Function.prototype.__proto__ === ????填空10???? // 为 true
    
    答案:
    var object = {}
    object.__proto__ ===  Object.prototype  // 为 true
    //var object=new Object
    //自有属性为空
    //object._proto_=Object.prototype
    
    var fn = function(){}
    fn.__proto__ === Function.prototype  // 为 true
    fn.__proto__.__proto__ === Object.prototype // 为 true
    
    var array = []
    array.__proto__ === Array.prototype // 为 true
    array.__proto__.__proto__ ===Object.prototype // 为 true
    
    Function.__proto__ ===Function.prototype// 为 true
    Array.__proto__ === Function.prototype // 为 true
    Object.__proto__ === Function.prototype // 为 true
    
    true.__proto__ === Boolean.prototype // 为 true
    
    Function.prototype.__proto__ ===  Object.prototype // 为 true
    
    问题二:
    function Fn(){
        console.log(this)
    }
    new Fn()
    

    问题:new Fn() 会执行 Fn,并打印出 this,请问这个 this 有哪些属性?这个 this 的原型有哪些属性?
    答案:
    1.这个this只有一个隐藏的proto属性,没有自有属性
    2.这个this的原型包含的属性有:proto和constructor属性

    问题三:

    JSON 和 JavaScript 是什么关系?
    JSON 和 JavaScript 的区别有哪些?

    答案:
    1.JSON是基于JavaScript设计的,是JavaScript的一个子集,JSON是用JavaScript语法来表示数据的一种轻量级语言。
    2.JSON和JavaScript的区别有:
        (1)JSON中字符串均用双引号表示"",不能用其他符号表示;
        (2)JSON中没有JS的函数(function)与undefined;
        (3)JSON中对象表示形式为{"name": "frank"}';
        (4)JSON中没有变量与原型链
         具体的json介绍请查看:[https://www.json.org/json-en.html](https://www.json.org/json-en.html)
    
    问题四:

    前端 MVC 是什么?(10分)
    请用代码大概说明 MVC 三个对象分别有哪些重要属性和方法。

    答案:

    1,mvc(model view controller)
    model:主要负责数据管理,数据请求数据存储,数据逻辑,前端model主要负责ajax请求或者localstorage存储
    view:主要负责用户界面,前端view主要负责html渲染
    controller:负责处理view的事件,并更新model也负责监听model的变化,并更新view,controller负责控制其他所有流程

    var model={
        init:function(){}
        fech:function(){}
        save:function(){}
    }
    var view=document.queryselector("")
    var controller={
        view:null
        model:null
        init:function(view,model){
            this.view=viewview,model
            this.model=model
            this.bindEvent()
        },
        bindEvent:function(){}
    }
    controller.init(view,model)
    
    问题五:

    在 ES5 中如何用函数模拟一个类?

    答案:
    function Person(name,age,job){
    this.name=name
    this.age=age
    this.job=job
    }
    Person.prototype={
    sayname:function(){
    return this.name
    }
    person1=new Person('summer','12','doctor')
    person2-new Person('sunny','22','writer')
    }
    person1.sayname()//summer
    console.log(person2.sayname())//sunny
    
    问题五:

    用过 Promise 吗?举例说明。
    如果要你创建一个返回 Promise 对象的函数,你会怎么写?举例说明。

    答案
    function timeout(ms){
    return Promise(resove,reject){
    settimeout(resove,ms,'hello,word')
      }
    }
    timeout(100).then((value)=>
    console.log(value)
    )//上面代码中,timeout()方法返回一个Promise实例,表示一段时间以后才会发生的结果。过了指定的时间(ms参数)以后,Promise实例的状态变为resolved,就会触发then()方法绑定的回调函数。
    

    相关文章

      网友评论

          本文标题:js 基础知识问答

          本文链接:https://www.haomeiwen.com/subject/oegooctx.html