前端面试题

大三狗记录一下看到别人分享的面试题
感谢各位大佬的分享和分析
如何判断一个变量是对象还是数组?
要判断变量是对象还是数组,使用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属性的区别
title属性的功能是提示,可以为链接添加描述性文字
alt属性是属于img标签的,当图片无法显示的时候图片位置就会显示alt属性的内容
如果img标签里加上title属性,如

<img src="#" alt="图片失效就到我出现啦" title="鼠标移上图片位置我就会出现啦" />
复制代码
//今天就先到这了呀2018.3.20,明天加油!

//叮,粗线了
Vue双向绑定实现原理
Object.defineProperty了解一下 具体实现原理,看了大佬们的实现方式


<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>
复制代码
target属性规定哪个DOM元素触发了该事件
Object.defineProperty()方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回这个对象

语法

Object.defineProperty(obj,prop,descriptor)
obj 要在其上定义属性的对象。
prop要定义或修改的属性的名称
descriptor将被定义或修改的属性描述符

转载于:https://juejin.im/post/5ab0e0eaf265da23a404a737

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值