必须记住的前端知识点(一)

值类型的类型判断用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协议跨域

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,616评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,020评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,078评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,040评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,154评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,265评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,298评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,072评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,491评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,795评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,970评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,654评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,272评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,985评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,815评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,852评论 2 351

推荐阅读更多精彩内容