最近的一些面试题目准备

1、DOM

文档也是一个节点,文本也是一个节点,属性也是一个节点

appendChild();

insertBefore();

removeChild();

replaceChild();

2、 为什么 TCP 建立连接需要三次握手,而不是两次?这是因为这是为了防止出现失效的连接请求报文段被服务端接收的情况,从而产生错误。
3、href和src的区别
https://blog.csdn.net/annsheshira23/article/details/51133709
4、var,let,const的区别

https://www.jianshu.com/p/84edd5cd93bd

https://www.cnblogs.com/zhaoxiaoying/p/9031890.html

https://www.cnblogs.com/echolun/p/10575676.html

若子作用域没有let i,那么就会继承父作用域的i;若子作用域let i了,则父作用域和子作用域的i完全是两个变量

const和let一样没有变量提升,而且const设置的是常量。并且都是块级作用域,只作用于当前代码块。都是es6的

5、双大括号和v-bind

数据绑定方式

https://blog.csdn.net/u013912696/article/details/97539327

6、CSS优先级

https://m.html.cn/qa/css3/13463.html

7、回调函数

a函数作为参数被其他函数调用,返回值为a函数

特点:不会马上执行

https://www.jb51.net/article/134549.htm

8、闭包

一个函数中定义一个新的函数

链式作用域

这里有一个地方需要注意,函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!

闭包的用处:一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

原因就在于f1是f2的父函数,而f2被赋给了一个全局变量,这导致f2始终在内存中,而f2的存在依赖于f1,因此f1也始终在内存中,不会在调用结束后,被垃圾回收机制(garbage collection)回收。

http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html

9、position

https://blog.csdn.net/weixin_40615146/article/details/86569378

absolute https://blog.csdn.net/tengliu6/article/details/52088743

fixed https://www.cnblogs.com/coco1s/p/7358830.html

子元素absolute的时候,父元素要relativehttps://blog.csdn.net/win32fanex/article/details/83655917

10、直接递归

直接递归会超时,因为调用栈会越来越多。

11、防抖

https://segmentfault.com/a/1190000018428170

https://blog.csdn.net/hupian1989/article/details/80920324

12、原型链

https://www.cnblogs.com/loveyaxin/p/11151586.html

https://blog.csdn.net/xiaoermingn/article/details/80745117

13、浏览器是多线程、js是单线程

浏览器:js引擎线程、渲染线程、http请求线程、settime之类的

js:js代码始终在一个线程上执行、此线程被称为js引擎线程

https://blog.csdn.net/github_34514750/article/details/76577663

https://www.cnblogs.com/z-one/p/8522908.html

14、线程和进程的区别

https://www.zhihu.com/question/25532384

15、BFC

https://blog.csdn.net/sinat_36422236/article/details/88763187

16、行级元素和块级元素的区别,什么是inline-block

https://www.cnblogs.com/cui-ting/p/9884060.html

vertical-align、text-align

17、Js的数据类型有7种

Number、String、Boolean、undefined、null、object

ES6新增一种:Symbol

基本类型:String、Number、Boolean、undefined、null

引用类型:object中包含function、Array、Date

https://blog.csdn.net/u013592575/article/details/95087953

18、箭头函数和普通函数的区别

https://blog.csdn.net/qq_42258904/article/details/110083064

https://blog.csdn.net/weixin_34392843/article/details/91433451?utm_medium=distribute.pc_relevant.none-task-blog-searchFromBaidu-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-searchFromBaidu-3.control

19、MVVM

主要实现了View和Model的自动同步,让两者双向绑定,当View发生变化时Model也能跟着变化。

简单介绍前端MVC/MVVM模式特点及区别_巨大星星星的博客-CSDN博客_mvvm模式和mvc的区别

20、本地跨域

https://www.cnblogs.com/nolaaaaa/p/9126385.html

https://www.npmjs.com/package/http-server

21、Ajax

jQuery的id选择器

${’#btn1’}

22、工厂模式、单例模式

工厂模式JavaScript设计模式——工厂模式 - 有梦想的咸鱼前端 - 博客园 (cnblogs.com)

单例模式JavaScript 设计模式(一):单例模式 - SegmentFault 思否

23、防抖

浅谈js防抖和节流 - SegmentFault 思否

24、相等运算符== 和 全等运算符===

(1 封私信 / 80 条消息) Javascript 中 == 和 === 区别是什么? - 知乎 (zhihu.com)

相等运算符的缺点:
'' == '0'	//false
0 == ''		//true
0 == '0'	//true

false == 'false'	//false
false == '0'		//false

false == undefined	//false
false == null		//false
undefined == null	//true

'\t\r\n' == 0		//true

[]==0		//true
[]=='0'		//false
'0'==[]		//false
{}==0		//报错,把{}当成代码块了,等于写了个{};
({}==0)		//false
0=={}		//false
数值本身不改变类型,只是比较的时候会改变类型
25、判断数据类型的方法

typeof

instanceof

constructor

Object.prototype.toString

26、深拷贝、浅拷贝的区别及深拷贝的实现

js浅拷贝与深拷贝的区别和实现方式 - 简书 (jianshu.com)


27、setTimeout和setInterval的定时器:

Timeout的定时器,在匿名函数执行完以后就停止了,但是还保留着,所以要clearTimeout

Interval的定时器会一直计时,要clearInterval

setInterval()和clearInterval() 用法_依然谈笑春风-CSDN博客

n=3;
    var s = setInterval(function(){
        alert('2s');
        
        n--;
        if(n==0)
        {
            clearInterval(s);
        }
    },2000);
setTimeout("changeState()",3000 );  
function changeState(){  
	let content=document.getElementById('content');  
	content.innerHTML="<div style='color:red'>我是三秒后显示的内容!</div>";  
}

document对象是window对象的一部分

js中万物皆对象,甚至数组字符串函数都是对象

别人控制的用props,自己控制的用data(){}

模板字符串:${}

var str1=“my name is”+person.name+"/nmy age is"+person.age;

上式可以写成以下这种形式,双引号变反引号,要添加的变量的位置,用${}代替,大括号内可以使用任何表达式

var str2=my name is ${person.name}

利用bfc,左边浮动并且定宽(width:250px),右边宽度100%,overfloat:hidden;

https://blog.csdn.net/C05230/article/details/109477796?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值