代码改变世界

《JavaScript语言精粹》

2014-09-04 23:45  臭小子1983  阅读(148)  评论(0)    收藏  举报

一、语法

1、语句

  false、null、undefined、0、""、NaN这几项都会假,其它值都返回假

 

二、对象

1、对象字面量和获取对象属性的方法

 1 <script>
 2     var empty_object = {};
 3     var strong = {
 4         "firstName": "jerome",
 5         "listName": "Howard"
 6     }
 7 
 8     // 获取对象属性
 9     console.log(strong.firstName);
10     console.log(strong["listName"]);
11 </script>

 

2、对象的更新

  strong["firstName"] = "siguang";

 

3、对象引用

  一个对象引用另一个对象后,当改变一个对象的属性,另一个对象也会跟着改变,因为对象引用的指是引用堆中的对象指针,而不是栈中的数据.

 1 <script>
 2     var empty_object = {};
 3     var strong = {
 4         "firstName": "jerome",
 5         "listName": "Howard"
 6     }
 7 
 8     var objStrong = strong;       // 对象引用
 9 
10     objStrong["firstName"] = "siguang";
11 
12     // 获取对象属性
13     console.log(strong.firstName);
14     console.log(strong["listName"]);
15 </script>    

 

4、hasOwnProperty检查属性是否是对象中的属性

var obj = { name: "siguang" };

console.log( obj.hasOwnProperty("name"); );  // 如果是返回 ture

 

四、函数

1、函数字面量

  也就是将一个匿名函数返回给一个娈量

1 var add = function(a, b) {
2     return a + b;    
3 }

 

2、方法和函数的调用

  当一个函数保存到对象中就为方法,

 1 <script>
 2     // 方法调用
 3     var obj = {
 4         name : "siguang",
 5         getName : function(){
 6             console.log(this.name);
 7         }
 8     }
 9 
10     obj.getName();
11         
12     // 函数调用
13     var name = "siguang";
14     function getName() {
15         console.log(name);
16     }
17     
18     getName()
19 </script>

 

3、函数的作用域

  有两个好处:1、减少了命名的冲突,2、提供了自动内在管理

 

4、函数的其它概念

  call、apply:改变函数的指针

  arguments:参数的集合

  作用域:

  闭包:内部函数调用外部函数的变量

  回调:当函数执行完某些语句后可以加载其它函数

  模块:可以提供接口可以完全抛弃全局变量

  链式调用:当一个方法执行完后,我们返回的不是一个值,而是this这样就可以调用直接调用另一个方法.

 

六、数组

  数组是一段线性分配的内存

1、数组字面量

  var empty = [1, ,2, 3, 4, 5, 6, 7];

 

2、数组长度

  var arr = [];  arr.length;     //  为0

  var arr = [1];  arr.length;   // 为1

 

3、删除数组

  var empty = [1, 2, 3, 4, 5];  empty.splice(2, 1);