记录一下JS的一些基础知识问题
第一题:
var object = {}
object.proto === ????填空1???? // 为 truevar fn = function(){}
fn.proto === ????填空2???? // 为 true
fn.proto.proto === ????填空3???? // 为 truevar array = []
array.proto === ????填空4???? // 为 true
array.proto.proto === ????填空5???? // 为 trueFunction.proto === ????填空6???? // 为 true
Array.proto === ????填空7???? // 为 true
Object.proto === ????填空8???? // 为 truetrue.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的,时间不定,争取一周写一篇吧!