一直很喜欢Head First系列,就像一个知识渊博又极具幽默感的老师在给自己讲课。想从零基础复习一下javascript,就从这本书开始啦。
1.交互式网络
(1)事件从何而来:虽然事件是由用户触发的,但最终还是来自浏览器。因为浏览器必须包装关于事件的信息,再传递给负责响应这个事件的函数。
(2)prompt() 方法用于显示可提示用户进行输入的对话框。第一个参数是对话框中显示的文本,第二个参数是输入框的默认文本。
2.存储数据
(1)var定义变量,const定义常量,常量一般以全大写字母命名,变量名要满足独特且有意义。
(2)js与其他程序语言不同的一点是,js的数据类型可以随着指派值的转变而转变。
(3)js标识符的命名规则:第一个字符为字母,下划线或美元符号,第一个字符后除了这三个还可添加数字。空格与特殊字符不可出现在标识符里。
(4)NaN:Not a Number。计算过程中需要数字,却收到非数值的数据时,才会看到NaN
(5)Javascript允许我们用getElementById()函数以ID访问网页元素,这个函数不会直接捕获元素的数据,而是以javascript 对象的形式提供HTML域内容。我们则通过域的性质 (property)访问数据。
(6)努力贴近用户靠直觉输入的内容,这里出现了3 dozen甜甜圈。通过程序实现遇dozen则乘12。虽然实现起来并不困难,但这种思想非常重要,能有效提升用户体验。
3.探索客户端
(1)setTimeout()设置单次定时器,它有两个参数,第一个参数为执行的函数或代码,第二个参数为延迟的时间,以毫秒(千分之一)为单位。
(2)setInterval()设置间隔定时器,每次间隔延迟到期时反复运行程序代码 。
(3)客户端窗口只是浏览器窗口呈现网页的部分,不包括标题栏和工具栏。document对象的body.clientWidth存储了客户端窗口的宽度,高度同理。
(4)网页上所有元素都有一个style对象,借此可取得网页上任何事物的宽度和高度。
(5)onresize事件于浏览器有任何尺寸修改时被触发。
(6)javascript于浏览器关闭或网页重新载入时摧毁所有变量。
(7)cookie是浏览器存储在用户计算机里的一块数据,可以用于延长脚本的生命周期,用navigator.cookieEnabled可以用来检查浏览器是否支持cookie。
(8)javascript+cookie=适合客户端,便利的持久性数据存储方案。
(9)为什么把可再利用的代码存储为外部文件:放在单一位置容易维护;文件的组织度较佳;代码的再利用度。