2020-03-26

2020-03-26  本文已影响0人  有只Bug

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执行环境有一个全局作用域

上一篇下一篇

猜你喜欢

热点阅读