1、介绍一下js的数据类型有哪些,值是如何存储的?


2、说一下js的数据类型的转换都有哪些?


3、如何去判断js数据类型?


4、介绍 js 有哪些内置对象?


5、javascript 创建对象的几种方式?


6、js 获取原型的方法?


7、什么是闭包,为什么要用它?


8、三种事件模型是什么?


9、哪些操作会造成内存泄漏?


10、简述javascript中this的指向?



11、解释一下原型链?


12、深拷贝、浅拷贝、以及如何实现?


13、DOM事件流和事件委托?

14、ajax是什么?以及如何去创建它?


15、什么是跨域?jsonp的原理?以及怎么实现?


16、防抖和节流


17、同步和异步的区别,分别列举一个同步和异步的例子?


18、描述new一个对象的过程?


19、全局函数eval()有什么作用?


20、原生对象和宿主对象?
21、get和post有什么区别?
22、请解释一下变量声明提升?
23、请指出document.onload和document.ready两个事件的区别?
24、请解释JSONP的工作原理,以及它为什么不是真正的AJAX?
25、通过new创建一个对象的时候,构造函数内部有哪些改变?
26、如何防范CSRF攻击,XSS攻击?
27、箭头函数与普通函数的区别?
28、说一下js继承?
***Es5中的继承有:
①.原型继承:父类的实例作为子类的原型
②.借用构造函数继承:在子类中适用call方法,调用父类的方法,并将父类的this改为子类的this
③.组合继承:既可以调用父类实例的属性又能调用父类原型的属性
ES6有class继承:
①.class就相当于Es5中的构造函数
②.class中定义的方法签后不能加function ,全部定义在class的prototype属性中
③.class只能定义方法,不能定义定义对象变量等
④.class默认为严格模式
⑤.在子类中,调用extends方法,可以调用父类的属性,用eat调用父类的方法
----
29、JS 中的主要有哪几类错误?
30、JS中如何将页面重定向到另一个页面?
31、JS中的Array.splice()和Array.slice()方法有什么区别?
32、undefined,null 和 undeclared 有什么区别?
33、JS中的高阶函数?
34、如何区分声明函数和表达式函数?
35、JS中的“严格”模式是什么以及如何启用?
36.请描述event loop(事件循环、事件轮询)的机制,可画图?
①.js是单线程的,异步要基于回调来实现,event loop(事件循环/事件轮询)就是异步回调的实现原理。
首先我们需要明白js是如何执行的:从前到后,一行一行执行,如果某一行执行报错了,则停止下面代码的执行,先将同步代码执行完毕,再执行异步代码。
根据上图所示,event loop的执行原理如下:
(1)同步代码,一行一行执行,是放在call stack(调用堆栈)中执行的
(2)遇到异步代码,先记录下在web API中,等待时机(定时、网络请求等)
(3)时机到了,就移动到callback queue(回调队列)中
(4)如果 call stack 为空(即同步代码执行完毕) event loop 开始工作
(5)轮询查找 callback queue, 如有则移动到call stack执行
(6)然后继续轮询查找,直到完成
②.DOM事件 和 event loop
js是单线程的
异步(setTimeout、ajax等)使用回调,是基于event loop的
DOM事件也使用回调,也基于event loop
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/126863.html