一、操作符和语句
1.语句格式
1)Javascript语句通常以分号作为结束符,若处理javascript的应用程序判断语句是完整的,并且每行都以换行符结尾,那么就可以忽略分号。
2)如果同一行中包含多个语句,那么就必须使用分号来区分不同的语句。
3)由于太大的javascript文件会降低载入速度,为了提高载入javascript的速度,需要使用Packer等软件进行javascript的代码压缩。
2、赋值语句
1) 如下所示,第一个变量被赋值,第二个未定义。
var n,m = 3;
3、算术操作符:
1)因为在javascript中“+”对数字是加法运算,对字符串是连接操作,因此在使用时需要注意顺序。
2)javascript支持相同操作符,不但比较类型,还比较数值
二、Javascript对象
1、Number和String对象实例都有各自特殊的属性,而Boolean没有。所有这三种对象都将继承基类object定义的属性和方法。
2、Boolean对象创建时如果不指定对象的初始值,那么该对象的初始默认值是false。
3、对象方法不是基于对象实例,而是直接为对象类所调用的。
4、stirng对象方法:
5、javascript数组
javascript数组也是一个对象,可以通过下标访问,可以有多维数组。javascript语言中不需要提前知道数组元素的个数。
其的属性方法有length,方法splice()、slice(),concat()、reverse()
数组可以用来保存一系列元素,并以先进先出FIFO的方式访问,有四个常用方法:push、pop、shift、unshift。
数组遍历除了通过下标访问,还可以如下通过for .. in 循环。
6、Math对象
Math的属性有:
Math常用的方法:
Math.abs(x):取绝对值
Math.ceil(x):向上取整
Math.floor(x):向下取整
Math.exp(x):取自然对数
Math.pow(x):进行幂方操作
Math.min(n1,n2,n3,n4)
Math.Max(n1,n2,n3,n4)
Math.random():用来生成0~1之间的随机数
7、正则表达式RegExp对象:
RegExp只要两个实例方法:test()和exec().
test():判断传入参数是否与正则表达式相匹配。
exec():根据正则表达式在字符串中查找。
例如:
三、函数
1、创建函数的三种方法:
1)声明式/静态式
2)动态的/匿名的
3)字面量式
2、函数返回值和参数
传给函数的参数是基本类型,如字符串、布尔值、数字等是传值引用。
传给函数的参数是对象时,则是引用传递。
3、匿名函数:
语法格式:
最后一个参数是函数体,其他的都是函数参数
4、函数字面量:
1)函数字面量也被称为函数表达式,不过其和匿名函数之间是有差异的,函数字面量只会
被解析一次
2)函数字面量的非匿名形式,例如下面的示例:
但是此函数名称只能在函数内部调用。
3)递归函数
递归在处理DOM之类的树形结构很有价值,但是存在因为闭包导致 内存泄漏。
4)嵌套函数、函数闭包与内存泄漏
1)在嵌套函数中,内部函数在外部函数中执行,可以访问外部函数变量和参数,而外部
函数不应访问内部函数的变量,也不应访问调用调用内部函数的程序。
2)局部变量占用的内存不确定能不能通过自动垃圾回收。
3)当一个内部函数向外部应用程序返回一个值,并赋给一个外部变量时,内部函数的作用域就附加到外部函数上,然后再附加到调用它们的应用程序中。
5)回调函数:能够根据一些事件自动调用的依赖函数的方法,
例如:
数组方法:filter、forEach、every、map、some
每个回调函数都有3个函数:element、index、array。所有的回调函数都不会对始的
数组产生影响
6)函数类型小结:
* 声明式函数:一个拥有自己语句的函数,最开始是关键字function。声明式函数只
会被解析一次,它是静态的,并且只提供了一个名称以便访问。
* 匿名函数:一个使用构造器创建的函数,每次访问它时都将解析一次,而且没有
指定一个特定的函数名称。
* 函数字面量或函数表达式:在其他语句或表达式中创建的函数。它只会被解析一
次,它是静态的,可以指定也可以不指定函数名。
6)函数作用域,
* 函数中使用var声明的变量时局部变量,函数外使用不使用var都是全局变量。
四、调试、排错工具等
1、alert对话框打印
2、浏览器提供的开发和调试工具:
1)Firefox 和Firebug
2)console.log
3)Web Developer toolki工具包
3、处理浏览器之间的差异
1)对象检测
对象检测成功的两个条件:
a.它是已定义的
b.它是非空的
2)阻止向后兼容:IE8.0中的Meta标签http-equiv