js 基础知识问答
2020-01-03 本文已影响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()方法绑定的回调函数。