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()方法绑定的回调函数。
上一篇下一篇

猜你喜欢

热点阅读