大三狗记录一下看到别人分享的面试题
感谢各位大佬的分享和分析
如何判断一个变量是对象还是数组?
要判断变量是对象还是数组,使用prototype.toString.call()是最好的,千万不能用typeof来进行判断,因为它们返回的都是object
function isObjarry(){
if(Object.prototype.toString.call(value)=== "[object Array]"){
console.log("'value'是数组");
}else if(Object.prototype.toString.call(value)=== "[object Object]"){
console.log("'value'是对象");
}else{
console.log("'value'既不是对象也不是数组");
}
}
html中title属性和alt属性的区别
//今天就先到这了呀2018.3.20,明天加油!title属性的功能是提示,可以为链接添加描述性文字 alt属性是属于img标签的,当图片无法显示的时候图片位置就会显示alt属性的内容 如果img标签里加上title属性,如<img src="#" alt="图片失效就到我出现啦" title="鼠标移上图片位置我就会出现啦" />
//叮,粗线了
Vue双向绑定实现原理
Object.defineProperty了解一下
具体实现原理,看了大佬们的实现方式
target属性规定哪个DOM元素触发了该事件<body> <div id="app"> <input type="text" id="txt"> <p id="show-txt"> </div> <script> var obj = {}; //创建一个新对象 //在对象中添加存取描述符 Object.defineProperty(obj,'txt',{ get:function(){ return obj; }, set:function(newValue){ document.getElementById('txt').value = newValue; document.getElementById('show-txt').innerHTML = newValue; } }) document.addEventListener('keyup',function(e){ obj.txt = e.target.value }) <script> </body>
Object.defineProperty()方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回这个对象语法
Object.defineProperty(obj,prop,descriptor)
obj 要在其上定义属性的对象。prop要定义或修改的属性的名称descriptor将被定义或修改的属性描述符