日期:2014-05-16  浏览次数:20387 次

javascript高端程序设计笔记一 基础
一.JavaScript
JavaScript是一种客户端脚本语言,最初的目的是为了在客户端进行表单数据的校验
包含三部分
ECMAScript javascript的核心,描述了javascript的语法和基本对象
DOM  描述了操作页面内容的方法
BOM  描述了操作浏览器的方法
ECMAScript,DOM已经标准化
BOM并没有标准化,每个浏览器有不同的实现,比如Navigator对象,Location对象,Screen对象,对cookies的支持

二 ECMASccipt
1.语法
a.标识符,变量是大小写敏感的
b.变量是弱类型的,你可以在任何时刻改变变量的类型
c.结束语句的“;”分号 是 可选的,默认换行为结束语句
d.单行注释 //  多行注释 /* */
e.花括号 “{}” 指示代码块

2.变量
a.一行可以声明多个变量 var a='1',b=2
b.变量可以不声明,直接使用,比如  c = 3也是合法的,当解释器看到c的时候会自动声明一个 全局变量,注意是 全局变量,并且要执行到此语句时才会声明。

3.基本类型,引用值 和java类似,基本类型存放在stack里,放的是值 引用值 stack里放的是对象的内存地址,对象存放在heap里
ECMAScript规定的基本类型: undefined,null,boolean,string,number
每种基本类型都有它的表示范围以及文字替代 (literal representations)
使用typeof 操作符可以测试对象的类型
typeof的返回值有  string,number,undefined,boolean,object,function
a.undefined
一个未赋值的变量是undefined  例如 var a; alert(a)
对于变量,2种情况下会是undefined,一种是声明了未赋值,另外一种是根本不存在这个变量
对于没有返回值的function, 如果获取他的返回值,也是 undefined
b.null
  null 是undefined的一种衍生 null == undefined 返回true  undefined是指一个变量声明了未赋值,null是指这个变量指向的的对象是null
c.number
  数字包括整数,浮点数,10进制和16进制。
  无限大,无限小已经NaN
  注意 NaN == NaN 返回false 要判断一个变量是否是数字,使用 isNaN进行判断

4.类型转换
  a.转换为string  使用toString()方法 。对于number,可以使用toString(2,8,10,16)转换成相应的 2进制,8进制,10进制,16进制表示,toString()默认10进制
  b.转换为number  2个方法 parseInt("") 和 parseFloat(""),这2个方法只有当传入的是string参数时才有效,否则返回NaN
   对于parseInt("")和parseFloat("")都是从传入的字符串的第0个字符开始检查,如果不是数字则返回,如果是数字则一直继续检测,一直检测到第一个非法字符字符再进行转换,所以
parseInt("123a")和parseFloat("123.4a")会返回123和123.4
   区别在于,parseInt可以指定要转换的字符串的进制,而parseFloat不可以
  c.使用Boolean(arg) Number(arg) String(arg)进行相应的转换
   Boolean(arg) 非0数字 非空字符串(长度大于0) 非空对象返回 true;  其他都返回false
   Number(arg) 与parseInt和parseFloat不同,Number会检测整个字符串,再决定使用parseInt还是parseFloat,Number(true)=1 Number(false)=0 ,数字返回相应的数字,否则返回NaN
   String(arg)  直接调用arg的toString()方法,区别在于,对于null,String(null)返回"null",null.toString()报错,undefined一样