码迷,mamicode.com
首页 > 其他好文 > 详细

需要记住的前端知识点

时间:2020-04-15 13:58:00      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:als   ESS   没有   box   ons   string   浏览器缓存   单元   socket   

值类型的类型判断用typeof,引用类型的类型判断用instanceof

一切(引用类型)都是对象,对象是属性的集合

对象都是通过函数来创建的

1、关于闭包

闭包就是能够读取其他函数内部变量的函数。

主要有两种形式

①函数作为返回值

技术图片

 

image.png

②函数作为参数被传递

要到创建这个函数的那个作用域中取值——是“创建”,而不是“调用”

技术图片

 

image.png

2、js捕获异常

try {
throw new Error("Whoops!");
} catch (e) {
alert(e.name + ": " + e.message);
}
技术图片

 

image.png

3、原型对象与原型链

技术图片

 

image.png

prototype:

每个函数都有一个属性叫做prototype。

这个prototype的属性值是一个对象(属性的集合,再次强调!),默认的只有一个叫做constructor的属性,指向这个函数本身

技术图片

 

image.png

每个函数function都有一个prototype,即原型。每个对象都有一个proto,可成为隐式原型。

每个对象都有一个proto属性,指向创建该对象的函数的prototype

函数在定义的时候(不是调用的时候),就已经确定了函数体内部自由变量的作用域在函数中this到底取何值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了。

4、阻止冒泡和默认事件

①阻止冒泡:

e.stopPropagation(),IE则是使用e.cancelBubble = true

②阻止默认事件:

e.preventDefault(),IE则是使用e.returnValue = false;

javascript的return false只会阻止默认行为,而是用jQuery的话则既阻止默认行为又防止对象冒泡

5、浏览器解析渲染过程

① 解析HTML生成DOM树。

② 解析CSS生成CSSOM规则树。

③ 将DOM树与CSSOM规则树合并在一起生成渲染树。

④ 遍历渲染树开始布局,计算每个节点的位置大小信息。

⑤ 将渲染树每个节点绘制到屏幕。

6、ajax如何解析json数据,get与post方法的区别

JQ中的Ajax可以使用数据类型dataType:“JSON”定义来接收需要的数据类型原生的AJAX可以使用JSON.parse()来或者JSON.stringify()转换接收的数据类型

get和post都是向服务器发送一种请求,只是发送机制不同

① GET请求会将参数跟在URL后进行传递

POST请求则是作为HTTP消息的实体内容发送给WEB服务器。

② 首先是”GET方式提交的数据最多只能是1024字节”

Post传输的数据量大,可以达到2M。

③ get方式请求数据会被浏览器缓存起来,因此其他人就可以从浏览器的历史记录中读取到这些数据,例如账号密码等。在某种情况下,get方式会带来严重的安全问题。而post方式相对来说就可以避免这些问题。

④ Post请求必须设置Content-Type值为application/x-form-www-urlencoded;

⑤ 发送请求时,因为Get请求的参数都在url里,所以send函数发送的参数为null,而Post请求在使用send方法时,却需赋予其参数;

7、js变量范围

在函数内部,一般用var声明的为局部变量,没用var声明的一般为全局变量

① 全局变量 -> 在全局范围内都是可以访问的。

② 局部变量 -> 只能在当前作用域进行访问。

全局变量:当前页面内有效

局部变量:方法内有效

8、form中的disable与readonly的区别

共同点:都不能编辑和获取焦点。

①readonly只针对input(text / password)和textarea有效,而disabled对于所有的表单元素都有效,包括select, radio, checkbox, button等。

②readonly:使用表单post或get传递时会被传递出去。

disable:使用表单post或get传递时不会被传递出去。

③readonly的显示效果是没有灰化的

所有控件都有disabled 属性,但是不一定有readonly属性;

9、css为什么要放在js上面:

当浏览器遇到一个 script 标记时,DOM 构建将暂停,直至脚本完成执行,然后继续构建DOM。

每次去执行JavaScript脚本都会严重地阻塞DOM树的构建,如果JavaScript脚本还操作了CSSOM,而正好这个CSSOM还没有下载和构建,浏览器甚至会延迟脚本执行和构建DOM,直至完成其CSSOM的下载和构建。

CSS 优先:引入顺序上,CSS 资源先于 JavaScript 资源。

JS置后:我们通常把JS代码放到页面底部,且JavaScript 应尽量少影响 DOM 的构建。

10、什么是跨域?怎么解决?

跨域是指一个域下的文档或脚本试图去请求另一个域下的资源

同源策略:

请求的url地址,必须与浏览器上的url地址处于同域上,也就是域名,端口,协议相同.

① 通过jsonp跨域(动态创建script)

② document.domain + iframe跨域

③ location.hash + iframe

④ window.name + iframe跨域

⑤ postMessage跨域

⑥ 跨域资源共享(CORS)

⑦ nginx代理跨域

⑧ nodejs中间件代理跨域

⑨ WebSocket协议跨域

如需删除请联系:齐论电商.电商运营怪兽

需要记住的前端知识点

标签:als   ESS   没有   box   ons   string   浏览器缓存   单元   socket   

原文地址:https://www.cnblogs.com/qilundianshang/p/12704629.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!