javasc 和jQuery的一些总结(上)

js部分

一、关键词和语法结构

1.区分大小写

2.注意 、// 单行注释    /*   多行注释  */

3.字面量(直接量   literal)比如:12 //数字  ,5.8 // 小数 , “hello”     ‘hello’  //字符串,true    

/js/gi  //正则 ,null  // 空  ,(X:1,y:2)字典 var dict = {"Jeremy":20,"Jimmy":30};     [ 1,2,3,4]; //数组。

4.标识符(变量)和保留字

1.分号可以省略但是可能会产生问题,js会自动补上;

例如:var y = x+f

(a+b).toString()

等价于

var y = x+f(a+b).toString();

二、类型,值和变量

1.原始类型   数字  字符串 和 布尔 (bool)    null 空   undefine未定义的。

2.对象类型

3.类 Array             Function           Date          RegExp           Error

4.js解析器 中集成了垃圾回收

5.任意js的值都可以转为布尔值

例如:undefined

null

0

-0

NaN

""都被转换为false

6.包装对象 

例如:var s   =   "hello";      //原始类型(没有方法)

s.len =   4 ;    //    当调用原始类型的属性或方法的时候(原始类型是没有属性和方法的)

//只要引用了字符串的属性或方法,就会调用new

String(s)  把原始类型,包装成对象

//   以后调用s.len是调用String对象的属性和方法,一旦引用结束,新创建的临时对象会销毁

var  n  =  s.len;   //   此时为undefined

alert(n);

//   调用字符串布尔数字的属性或方法时,创建的临时对象。是包装对象

显示定义包装对象var S = new  String("hello")

var s ="hello";      是不同的

7.==和===的区别

如下:1、对于string,number等基础类型,==和===是有区别的

1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等

2)同类型比较,直接进行“值”比较,两者结果一样

2、对于Array,Object等高级类型,==和===是没有区别的

进行“指针地址”比较

3、基础类型与高级类型,==和===是有区别的

1)对于==,将高级转化为基础类型,进行“值”比较

2)因为类型不同,===结果为false

8.类型转换

如下:var n = 17;

alert(n.toString(2));     //二进制10001

alert(n.toString(8));      //021

alert(n.toString(16));      //0x21

alert(n.toString(10));          alert(n.toString());

9.toString( ) 和    valueOf( )


var date = newDate(2011,1,3);

date.valueOf( )    返回毫秒数代表的时间

10.js是动态类型    var n =10;      程序运行期间才会确定变量的类型



11.变量作用域

函数作用域和声明提前

函数内定义的变量声明自动提前到函数顶部

12.作用域链     scope   chain

在不包含函数的函数体内,作用域链有两个对象,第一个是定义函数, 参数和局部变量的对象,第二

个是全局对象。

在一个嵌套函数体内,作用域链上至少有三个对象。定义一个函数时,它保存了一个作用域链。调

用函数时,它创建一个新的对象存储它的局部变量,并将这个对象添加到保存的那个作用域链

上,同时创建一个新的更长的表示函数调用作用域的“链”。对于嵌套函数每次调用外部函数时,内

部函数会重新定义一遍。每次调用外部函数的时候

作用域链是不同的。

创建对象的三种方法

1.对象   直接量

如下:

```

var empty = {};

var point = {x:0,y:0};

```

你可能感兴趣的:(javasc 和jQuery的一些总结(上))