一,Javascript的组成
ECMAScript:翻译,核心,解释器,
DOM:文档对象模型,Document Object Model
操作HTML的能力,document对象
BOM:浏览器对象模型,Browser Object Model
window对象
ECMA:几乎没有兼容问题
DOM:有一些操作部兼容
BOM:没有兼容问题,完全不兼容
二,变量的类型
5种基本类型:unll,undefined,boolean,number,string
1种复杂类型:object
5种引用类型:Array,Date,RegExp,Object,Function
3种基本包装类型:Boolean,Number,String
2种单体内置对象:Global,Math
undefined:没有定义的变量,var声明没有初始化的变量
一个变量应该只存放一种类型的变量
类型转换函数:Boolean(),Number(),parseInt(),parseFloat(),string()
NaN,not a number,非数字,isNaN(),如果传人的参数不是数字返回true
隐式类型转换:if语句自动转换为boolean值,==自动转换两边类型,-自动把两边操作数转换为数字
三,变量的作用域
四,闭包
五,命名规范
六,运算符
隔行换色,对2求模,等于=(0,1)
秒转时间,秒数/60为分,js中/可以得到小数的结果,秒数%60得到结果为秒
七,流程控制
if,switch,?:三目运算符
八,json
json中没有length属性,json中的循环,
for(var i in json)来循环json的中的数据
数组中可以for-length循环或者for-in循环
js深入
一,函数的返回值,
函数没有return,返回undefined
二,函数传参(不定参)
argument,保存传人的参数的一个类数组的对象
取非行间样式,(IE中).currentStyle获取非行间样式,.style获取行间样式
(chrome,ff)getComputedStyle(odiv,false).width
三,数组基础
var arr=[];性能高
var arr = new Array(12,12,2)
设置数组的length,可以改变数组的个数
push(),在数组的尾部添加项,有参数
pop(),在数组的尾部删除项,无参数
shift(),在数组的头部删除项,无参数
unshift(),在数组的头部添加项,有参数
splice(删除的起始项,删除的项数,添加的项数),索引基于0
concat(),拼接数组,
join(分隔符),基于指定的分隔符拼接数组
sort(),只识别字符串,传人一个比较函数function(n1,n2){return n1-n2;}