美文网首页
2020-03-26

2020-03-26

作者: 有只Bug | 来源:发表于2020-03-26 23:20 被阅读0次

    1.javascript的typeof返回哪些数据类型

    (1)基本类型

    number   string  boolean   null   undefined

    Null类型的语义是“一个空的对象引用”(typeof null  结果为obj)

    Undefined类型只有一个值undefined,它是变量未被赋值时的值。

    (2)引用类型

    Object(Array,Date,RegExp,Function)

    2、例举3种强制类型转换和2种隐式类型转换?

    强制(parseInt,parseFloat,Number())

    隐式(==或===)

    (1)==之间发生的隐式类型转换;

    (1==”1”//true  或  null==undefined//true)

    (2)+*/-操作符的隐式类型转换;

    (3)逻辑运算符 || &&;

    (4)一元运算符 + - !

    3、split() join() 的区别

    前者是切割成数组的形式,

    后者是将数组转换成字符串

    4、数组方法pop() push() unshift() shift()

    Push()尾部添加 pop()尾部删除

    Unshift()头部添加 shift()头部删除

    5.事件绑定和普通事件有什么区别

    事件绑定是指把事件注册到具体的元素之上,普通事件指的是可以用来注册的事件

    (1)普通事件

        var btn = document.getElementById("hello");

        btn.onclick = function(){

             alert(1);

        };

        btn.onclick = function(){

             alert(2);

        }; //这个事件只会弹出2;

    ①如果说给同一个元素绑定了两次或者多次相同类型的事件,那么后面的绑定会覆盖前面的绑定

    ②不支持DOM事件流 事件捕获阶段è目标元素阶段=>事件冒泡阶段

    (2)事件绑定

       var btn = document.getElementById("hello");

       btn.addEventListener("click",function(){

           alert(1);

       },false);//此时的事件就是在事件冒泡阶段执行

       btn.addEventListener("click",function(){

           alert(2);

       },false); //这个事件首先会弹出1,然后在弹出2;

    ①如果说给同一个元素绑定了两次或者多次相同类型的事件,所以的绑定将会依次触发

    ②支持DOM事件流的

    ③进行事件绑定传参不需要on前缀

    ie9开始,ie11 edge:addEventListener

    ie9以前:attachEvent/detachEvent

    ①进行事件类型传参需要带上on前缀

    ②这种方式只支持事件冒泡,不支持事件捕获

    6.IE和DOM事件流的区别

    1.执行顺序不一样

    2.参数不一样

    3.事件加不加on

    4.this指向问题

    IE9以前:attachEvent(“onclick”)、detachEvent(“onclick”)

    IE9开始跟DOM事件流是一样的,都是addEventListener

    7.IE和标准下有哪些兼容性的写法

    Var ev = ev || window.event

    document.documentElement.clientWidth || document.body.clientWidth

    Var target = ev.srcElement||ev.target

    8.call和apply的区别

    (1)call的语法:函数名.call(obj,参数1,参数2,参数3……);

    (2) apply的语法:函数名.apply(obj,[参数1,参数2,参数3……]);

    toString.call([],1,2,3)

    toString.apply([],[1,2,3])

    Object.call(this,obj1,obj2,obj3)

    Object.apply(this,arguments)

    这两个东西功能相同,就是把一个函数里面的this设置为某个对象,区别就是后面的参数的语法。

    call需要使用逗号分隔列出所有参数,

    apply是把所有参数写在数组里面。需要注意的是即使只有一个参数,也必须写在数组里面。

    9.b继承a的方法

    考点:继承的多种方式

    function b(){}

    b.prototype=new b();

    b.prototype=Object.create(a.prototype);

    Object.create(o)相当于内部创建一个新的函数,然后将这个函数的prototype置为o,然后返回由这个函数创建的实例

    10.JavaScript this指针、闭包、作用域

    (1)this:指向调用上下文

    (2)闭包:内层作用域可以访问外层作用域的变量

    (3)作用域:定义一个函数就开辟了一个局部作用域,整个js执行环境有一个全局作用域

    相关文章

      网友评论

          本文标题:2020-03-26

          本文链接:https://www.haomeiwen.com/subject/tmghuhtx.html