前端学习笔记

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

2018-08-27  本文已影响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的,时间不定,争取一周写一篇吧!

上一篇下一篇

猜你喜欢

热点阅读