读《JavaScript高级程序设计》

这里写图片描述
祖师爷——Brendan Eich


javascript诞生于1995年。
Brendan Eich被指定为这种”简化版Java语言”的设计师。
但是,他对Java一点兴趣也没有。为了应付公司安排的任务,他只用10天时间就把Javascript设计出来了。
由于设计时间太短,语言的一些细节考虑得不够严谨,导致后来很长一段时间,Javascript写出来的程序混乱不堪。如果Brendan Eich预见到,未来这种语言会成为互联网第一大语言,全世界有几百万学习者,他会不会多花一点时间呢?
总的来说,他的设计思路是这样的:
(1)借鉴C语言的基本语法;
(2)借鉴Java语言的数据类型和内存管理;
(3)借鉴Scheme语言,将函数提升到”第一等公民”(first class)的地位;
(4)借鉴Self语言,使用基于原型(prototype)的继承机制。
所以,Javascript语言实际上是两种语言风格的混合产物—-(简化的)函数式编程+(简化的)面向对象编程。 这是由Brendan Eich(函数式编程)与网景公司(面向对象编程)共同决定的。
如果不是公司的决策,Brendan Eich绝不可能把Java作为Javascript设计的原型。作为设计者,他一点也不喜欢自己的这个作品:
“与其说我爱Javascript,不如说我恨它。它是C语言和Self语言一夜情的产物。十八世纪英国文学家约翰逊博士说得好:’它的优秀之 处并非原创,它的原创之处并不优秀。


1、怎么让js延迟执行?

6个属性,其中defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行,仅适用于外部脚本。

2、这种结构01.js会不会执行?(会)标签内部js代码会不会执行?(不会)

<script src="01.js">...</script>

3、在局部作用域中,变量声明省略var关键词会有哪些影响?

在局部作用域中,变量声明省略var关键词相当于声明了一个全局变量。但不推荐使用,因为不利于变量维护,导致不必要的混乱。在严格模式下会报错(ReferenceError)。

4、ECMAScript中哪6种数据类型?

5种简单数据类型(也叫基本类型):Undifined、Null、String、Number、Boolean
1种复杂数据类型:Object
(从技术上讲,函数在ECMAScript中是对象,不是一种数据类型。)

5、对象的每个实例都有7个属性和方法,其中constructor和prototype什么作用?

constructor:保存着创建当前对象的函数。即指向其构造函数。
prototype:指向对象实例的原型对象
实例属性定义在构造函数中,而所有实例共享的属性和方法定义在原型对象中。

6、什么是块级作用域(私有作用域)?匿名函数有哪几种形式?匿名函数怎么模拟块级作用域?

这里写图片描述

7、函数声明和函数表达式的区别?

javascript引擎会把函数声明提升到顶部。

8、每个函数在被调用时都会自动取得2个特殊变量(属性)?作用?

arguments 和 this。其中arguments.callee指向包含arguments的对象,常用来解耦。

9、每个函数都包含哪两个2个非继承而来的方法?区别?

apply() 和 call()。
相同点:这两个方法的用途都是在特定的作用域中调用函数,即改变this的指向。
不同点:apply(this , [arguments])call(【this】 , arguments[0],arguments[1]…)
                               //参数是数组                          //参数必须逐个列举出来

它们更重要的作用是扩充函数的作用域。

10、bind()
11、eval()

12、构造函数?

构造函数和普通函数惟一区别就是,构造函数可以通过new操作符来调用。

13、什么是闭包?怎么创建闭包?作用?缺点?

闭包是 指能够访问另一个函数作用域中的变量的 函数
闭包的特点是,闭包只能读取外部函数中的任何变量的最后一个值。因为闭包保存的是整个变量对象,而不是某个特定的变量。

14、Bom常用操作?

location.href=”url”;
history.go(-1)


15、Dom常用操作?

这里写图片描述

16、阻止浏览器默认行为?阻止事件冒泡?

event.preventDefault(); IE中为event.cancelBubble
event.stopPropagation();

这里写图片描述

17、ready、load和DOMContentLoaded事件?

load 事件会在页面中的一切(包括图片,音频、视频,css文件,js文件…)都加载完毕才触发。
DOMContentLoaded 事件在形成完整DOM树后就会触发,不用理会图片,音频、视频,css文件,js文件…是否下载完毕。
ready 事件并不是浏览器原生事件,而是DOMContentLoaded事件、onreadystatechange事件和doScrollCheck()函数的统称。

18、移动设备的屏幕方向?

这里写图片描述

19、触摸事件?

这里写图片描述

20、canvas?

填充和描边
这里写图片描述

绘制图片:
这里写图片描述

绘制矩形
这里写图片描述

拱形和圆
这里写图片描述

绘制文本
这里写图片描述

其他:rotate,scale,transform,渐变,阴影……

21、drag 和 dataTransfer?

这里写图片描述

这里写图片描述

21、XMLHttpRequest对象?get() 和 post() ?(p575)

21、什么是跨域 ?怎么实现跨域?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值