美文网首页前端学习笔记
记录一下JS的一些基础知识问题

记录一下JS的一些基础知识问题

作者: 还是流星拳比较好 | 来源:发表于2018-08-27 22:02 被阅读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

    答案:
    填空1:Object.prototype
    填空2:Function.prototype
    填空3:Object.prototype
    填空4:Array.prototype
    填空5:Object.prototype
    填空6:Function.prototype
    填空7:Function.prototype
    填空8:Function.prototype
    填空9:Boolean.prototype
    填空10:Object.prototype
    

    第二题:

    function fn(){
      console.log(this)
    }
    new fn()
    

    new fn() 会执行 fn,并打印出 this,请问这个 this 有哪些属性?这个 this 的原型有哪些属性?

    答案:

    这个this自身没有属性(即属性为空),有一个隐藏属性__proto__
    这个this的原型为fn.prototype有一个属性constructor: fn,还具有一个隐藏属性__proto__指向Object.prototype

    第三题:

    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中没有变量与原型链
    

    第四题:

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

    答案:

    前端MVC是指Model、View、Controller,是一种代码架构模式,将代码分成三块。
    Model用于处理数据的操作,包括数据逻辑、数据请求与数据储存等功能。
    View用于展示代码在页面哪一块,查找此标签(负责用户界面)
    Controller负责处理View事件并更新Model,也负责监听Model的变化并更新View,Controller控制其他所有的流程。

    代码说明:
    var model = { // 数据操作
        init: function(){}, //初始化
        fetch: function(){},  //接收数据
        save: function(){}  //储存数据
    }
    
    var view = document.querySelector('#xxx')  //查找页面中的标签
    
    var controller = {
        view: null,
        model: null,
        init: function(view, model){  //初始化控制器
            this.view = view
            this.model = model
            this.model.init()
            this.bindEvent()
        }
        bindEvent: function(){} // 事件函数
    }
    

    第五题:

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

    答案:
    function Human(options){
        this.name = options.name
        this.age = options.age
    }
    Human.prototype.eat = function(){}
    Human.prototype.run = function(){}
    
    human = new Human({name: 'frank', age: 30})
    

    第六题:

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

    答案:

    $.ajax({url: '/xxx', method: 'get'}).then(success, fail)
    在JQuery中用AJAX的API,可以返回Promise对象

    如果我自己写的话

    function fn(){
        return new Promise(
            function( resolve, reject ){
                成功调用resolve
                失败调用reject
            }
        )
    }
    

    写给自己看:也学习了三个来月了,写了几个小项目但是都比较简单。而且很多知识点有些记不清楚了。接下来这周把书给看完,然后回头复习一下,不然后面更难的知识点更不好记住了。。。接下来打算写三篇博客,分别是讲promise、jsonp和ajax的,时间不定,争取一周写一篇吧!

    相关文章

      网友评论

        本文标题:记录一下JS的一些基础知识问题

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