@delight
2015-01-10T17:16:11.000000Z
字数 1943
阅读 1681
javascript
js
webfront
script
标签内,然后位置可以在head
或body
内,也可以放在外置的*.js
文件中;如果放在body里面,推荐放到块的最后;console.log()
来记录log;document.write()
来覆盖文档内容;
a={
test:"1",
ha:3
}
可以直接a.test
,这与a["test"]
等价,这意味着所有的key必须都是字符串;
5. 未被使用var声明的局部变量直接被升格为全局变量;在HTML中,所有的script元素都隶属于一个window
命名空间;
6. js在HTML中主要用于事件回调,常用事件包括onchange
, onclick
, onmouseover
, onmouseout
, onkeydown
, onload
等等,详细列表见这里.
7. js的string也是immuable的,number则不细分,只有一种类型: 64-bit Floating Point;Infinity表示无穷大,而NaN表示不是一个数(C++也有);js对原子类型和对象的划分有点类似java,可以通过Number.xxx
来引用某些特殊数值。
8. 内置函数和object方法。内置函数包括:Number()
,parseFloat
和parseInt()
;object方法包括toString()
, toExponential()
, toFixed()
, toPrecision()
, valueOf()
;
9. 操作符与java基本一致;Math对象含有常见的数学运算;Date对象则负责处理日期;
10. js的数组(Array)可以不经分配直接使用,比如a=[];a[3]=5
这样;也可以用作堆栈(pop, push)或队列(shift, unshift);可以直接delete
其中的数据;可以用splice
来插入元素;
11. 数组可以用sort
方法进行排序,默认是字母序,可以指定排序函数;
12. 跟string一样,数组可以用concat
进行拼接,也可以使用join
将数组中的字符串拼接起来;
13. Boolean的判定和python类似;js在进行混合运算时,会自动发生字符串到数值的转换;js有===
符号,表示值和类型都相等(因为有自动转换的问题),null==undefined
;
14. switch语句和C语言一致;for in
语句只能用在object中,而且在遍历的时候会遍历原型链中的key,需要使用hasOwnProperty()
之类的方法进行过滤,也存在传统的C系条件语句;
15. 可以用label,但是不支持goto
,相反可以用break label
和continue label
;
16. try..catch..finally
类似java,但是catch的异常种类似乎没有细分。
17. js无条件支持正则,将字符串放在//
之间就可以表示正则了,字符串有match
, search
等方法;
18. js会自动将所有声明语句提到最前,因此代码里面甚至可以先使用再声明;由于这个东西很容易造成混乱,所以一般使用"use strict";
强制约束使用前先声明。此外,js和c语言很相似:一般将变量全部声明在作用域最前面;
19. js的命名规范类似java,推荐使用小驼峰;
21. 不推荐使用with
关键字,不同于python,js的with
效果很奇怪;
22. 使用JSON.parse()
来将json文本转为js对象,JSON.stringify()
来做反向转换;
23. 可以通过function内部再定义function定义类,然后new出对象;function被称为构造器,其prototype对应原型;如果更习惯于类风格的面向对象,可以引入jquery之父写的Class
类库;
24. 原型链构成了js的面向对象,一个对象必定有其构造器(constructor
)和对应的原型(__proto__
),对象的__proto__
就是其构造器的prototype
;
客户端环境下的js,就是被浏览器解释的js,习惯上使用神器jquery来操作dom元素。由于各家浏览器实现的环境不完全一致(尤其是IE),导致客户端js很难兼容(css和html也一样)。
1. 监听器,浏览器的事件模型是先捕获(capture)然后冒泡(bubble),这是w3c的标准模型。jquery仅支持在冒泡阶段注册监听器(为了兼容),如果想要注册在捕获阶段,只能使用addEventListener
手动注册。
2. jquery仅支持css selector,想要使用xpath的话,需要使用其他xpath库。