javascript 学习(1)

第一部分 核心javascript

第二章 词法结构

     2.1 字符集
          javascript 采用双字节对字符Unicode进行编码
 
     2.2 大小写敏感
          关键字、变量、函数名以及所有的标示符都采取一致的大小写形式
 
     2.3 空白符和换行符
 
     2.4 可选的分号
          习惯使用分号
 
     2.5 注释
          
     2.6 直接量
          程序中直接显示出来的数据值
 
     2.7 标示符
          一个名字,在javascript中,用来命名变量和函数,或者用作javascript中某些循环的标签
          第一个字符必须是字母、_ 、$  ,接下来可以是 字母、数字、_ 、$ (数字不允许作为首字符出现)
 
     2.8 保留字
          不能用作标示符
          break  do   if  switch  typeof  case  else  in   this   var   catch false  instanceof  throw  void   continue  finally  new   true  while   default  for  null   try  with  delect  function return
 
第三章 数据类型和值
 
          数字 文本字符串 布尔值
 
     3.1数字
          3.1.1 整形直接量
          3.1.2 八进制和十六进制直接量
          3.1.3 浮点型直接量
          3.1.4 数字的使用 + - * /
          3.1.5 数值转换
          3.1.6 特殊的数值
     
     3.2 字符串
          3.2.1 字符串直接量
          3.2.2 字符串中的转义序列
               \0  NUL 字符
               \b  退格符
               \t   水平制表符
               \n  换行符
               \v  垂直制表符
               \f  换页符
               \r  回车符
               \"  双引号
               \'  撇号或单引号
               \\  反斜杠符
          3.2.3  字符串的使用
          3.3.3  把数字转换为字符串
                    n + " "
                    String(num)
                    number.toString()
          3.3.4  把字符串转换为数字
                   string_value - 0
     3.3 布尔值
          true false 
          
          布尔值转换 ,在数值环境中,true 转换数字为1  false转换数字为 0
 
     3.4 函数
          可执行的代码段
          函数直接量
 
     3.5 对象
          已命名的数据集合
          调用一个对象的方法用 "."语法将函数值从对象中提取出来,然后在用"()"调用那个函数
          
          3.5.1 创建对象
          3.5.2 对象直接量
          3.5.3 对象转换 
                    当一个非空对象用于布尔环境时,它转换为true
                    当一个对象用于字符串环境,调用对象的toString() 方法,并且使用该函数返回的字符串的值
                    当一个对象用于数字环境,调用该对象的valueOf(),如果返回一个基本类型的数值,这个值会被使用
                    多数情况下,valueOf返回的是对象自己,在此情况下,先使用toString()把对象转换为一个字符串,然后在试图把字符串转换为一个数字
 
     3.6 数组
          数值的集合,对象中得每个数值都有一个名字,而数组的每一个数值都有一个数字(下标)
          
          3.6.1 数组的创建
                    构造函数Array() 
                    var  a = new Array();
 
          3.6.2 数组直接量
                    javascript 创建并初始化数组的直接量语法
                    一个封闭在方括号中得序列,序列中得元素由逗号分割,括号内的值将被依次赋给数组的元素,下标值从0开始
 
     3.7 null
          无值 无对象 独一无二
     
     3.8 undifined
          并未申明的一个变量
          已经申明但还没有赋值的变量
          并不从在的对象属性
 
     3.9 Date 属性
         
     3.10 正则表达式
 
     3.11 Error对象
 
     3.15 传值 传址
               3中重要方式操作一个数据值
                    可以复制它,如,可以把它赋给一个新的变量
                    可以把它作为一个参数传递给一个函数或方法
                    可以把它和另外一个值进行比较看两个值是否相等
 
               3.15.2 复制和传递字符串
               3.15.3 比较字符串
               3.15.4 传值

 

第四章 变量
     
     4.1 变量的类型
          javascript的变量可以存放任何类型的值
 
     4.2 变量的申明
          在使用变量之前,必须先申明变量  var 
          如果没有用var给一个变量指定初始值,那么虽然这个变量被申明了,但是在给他存入一个值之前,它的初始值就是undefined
          由var申明的变量是永久性的,用delete删除这些变量将引发错误
 
          重复的申明和遗漏的申明
          var多次申明同一个变量不仅是合法的,而且不会造成任何错误,如果重复的申明有一个初始值,那么它担当的不过是一个赋值语句的较色
          
          如果给一个未用var申明的变量赋值,javascript会隐式申明该变量,隐式申明的变量总是被申明为全局变量,即使该变量只在一个函数体内使用
          局部变量只是在一个一个函数中使用
 
     4.3 变量的作用域
          程序中定义这个变量的区域
          局部变量的优先级 高于 同名的全局变量          
 
          4.3.1 没有块级作用域
               函数中申明的所有变量在整个函数中都有定义
 
          4.3.2 未定义的变量和为赋值的变量
                    未定义的变量:从没有被申明过,未被申明的变量就是未被定义的,根本不存在
                                           已经被申明,但是永远都不会被赋值的变量,如果要读这样的变量的值,那将会得到一个默认是值,就是undefined(为赋值的变量)
 
     4.4 基础类型和引用类型
 
          数值、布尔、null、undefined属于基础类型
               基础类型在内存中具有固定的大小
               数值类型是基础类型中最大的数据类型
 
 
          对象、数组、函数属于引用类型
               引用类型没有固定的大小
               对象任意长度、数组任意多个元素、函数任意的javascript代码
          
               变量保存了对基础数据类型的实际值,但是对引用类型的值却只保存对它的引用
          
 
     4.5 垃圾收集
          引用类型没有固定的大小,某些引用类型的数值可能非常大,变量并不能直接保存引用的值,这些值被存储在某个位置,变量保存的只是对那个位置的引用
 
          字符串、对象、数组没有固定的大小,当知道他们的大小时,才能对他们进行动态的存储分配,javascript每次创建字符串、对象、数组时,解释器都必须分配内存来存储那个实体,只要像这样,动态的分配内存,最终都要是放在这些内存以便它们都能够再利用,否则,javascript会消耗完系统中所有可用的内存,造成系统崩溃!
 
          javascript不需要手动的释放内存,使用一种垃圾收集方法,javascript 解释器可以检测到何时程序不再使用一个对象了,当它确定一个对象是无用的时候,就知道不再需要这个对象了,就可以把它所占的内存释放掉了
 
          垃圾收集是自动进行的
 
 
     4.6 作为属性的变量     
          4.6.1  全局对象
                    当申明一个全局对象时,实际上所做的是定义了那个全局对象的一个属性
     
          4.6.2  局部变量、调用对象
                    全局变量是特殊的全局对象的一个属性
                    局部变量是一个对象属性,这个对象被称为调用对象
 
                    在执行一个函数时,函数的参数和局部变量是作为调用对象的属性而存储的
                    用一个完全独立的对象来存储局部变量是javascript可以防止局部变量覆盖同名的全局变量的值
          4.6.3 javascript 执行环境
                    javascript 允许有多个全局执行环境,每个执行环境有不同的全局对象( 在这种情况下,每个全局对象就不完全是全局的)
 
     4.7 深入理解变量作用域
               全局变量具有全局的作用域,而函数中申明的变量具有局部的作用域
               如果一个函数嵌套在另一个函数中,那么在嵌套中申明的变量具有嵌套的局部作用域
          
               每个javascrit的执行环境,都有一个和它关联在一起的作用域链,这个作用域链是一个对象列表或者对象链
 

posted @ 2012-05-07 17:46  dsfderek  阅读(141)  评论(0编辑  收藏  举报