1、对象

1.1、序列话对象

JSON.stringify() 和 JSON.parse() 用来序列化和还原 javascript 对象。

var o = {x:1, y:{z:[false,null,""]}};  // 定义对象
var s = JSON.stringify(o);         // s是 "{"x":1,"y":{"z":[false,null,""]}}"
var p = JSON.parse(s);           // p 是 o 的深拷贝

2、数组

2.1、push() 和 pop()

push() 方法在数组的尾部添加一个或多个元素,并返回数组新的长度。

pop() 方法刚相反,它删除数组的最后一个元素,减少数组长度并返回它删除的值。

注意:两个方法都修改并替换原始数组而非生成一个修改版的新数组

var arr = [];           // arr: []
arr.push( 1, 2 ); // arr: [1, 2]   返回:2
arr.pop(); // arr: [1]   返回:2
arr.push( [4, 5] ); // arr: [1, [4,5]]  返回:2
arr.pop(); // arr: [1]      返回:[4, 5]
arr.pop(); // arr: [] 返回:1

2.2、map()

map() 方法将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含该函数的返回值。

var arrA = [1, 2, 3];
var arrB = a.map( function( x ) {
return x * x; // arrB = [1, 4, 9]
});

2.3、filter()

filter() 方法返回的数组元素是调用的数组的一个子集。传递是函数是用来逻辑判定的:该函数返回 true 或 false。

var arrA = [5, 4, 3, 2, 1];
var arrB = arrA.filter( function( x ) {
return x < 3; // [2, 1]
});
var arrC = arrA.filter( function( x, i ) {
return i % 2 === 0; // [5, 3, 1]
});

2.4、every() 和 some()

every() 和 some() 方法是数组的逻辑判定:它们对数组元素应用指定的函数进行判定,返回 true 或 false。

3、函数

3.1、函数的调用

  • 作为函数
  • 作为方法
  • 作为构造函数
  • 通过它们的 call() 和 apply() 方法间接调用

3.2、作为值的函数

函数可以定义,也可以调用,也是值,可以将函数赋值给变量。

function square( x ) {
return x * x;
} var s = square; // 现在 s 和 square 指向同一个函数
square( 4 );   //
s( 4 ); //

3.3、闭包

函数的执行依赖于变量作用域,这个作用域是在函数定义时决定的,而不是函数调用时决定的。为了实现这种词法的作用域,JavaScript 函数对象是内部状态不仅包含函数的代码逻辑,还必须引用当前的作用域。函数对象可以通过作用域链相互关联起来,函数体内的变量都可以保存在作用域内,这种特性被称为“闭包”。

注:闭包是指函数变量可以被隐藏于作用域链之内,因此看起来是函数将变量“包裹”了起来。

例1:

var integer = (function() {
var count = 0;
return function() {
return count ++;
}
}());

定义了一个立即调用的函数,因此是这个函数返回值赋值给变量 integer。嵌套的函数是可以访问作用域内的变量的,而且可以访问外部函数中定义的 count 变量。当外部函数返回之后,其他任何代码都无法访问 count 变量,只有内部的函数才能访问它。

例2:

function counter() {
var n = 0;
return {
count: function() {
return n++;
},
reset: function() {
return n = 0;
}
}
}
var c = counter(), d = counter();
c.count(); // => 0
d.count(); // => 0
c.reset(); // count() 和 reset() 共享状态
c.count(); // => 0
d.count(); // => 1

javascript 权威指南的更多相关文章

  1. JavaScript权威指南 - 函数

    函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...

  2. JavaScript权威指南 - 对象

    JavaScript对象可以看作是属性的无序集合,每个属性就是一个键值对,可增可删. JavaScript中的所有事物都是对象:字符串.数字.数组.日期,等等. JavaScript对象除了可以保持自 ...

  3. JavaScript权威指南 - 数组

    JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...

  4. 《javascript权威指南》读书笔记——第二篇

    <javascript权威指南>读书笔记——第二篇 金刚 javascript js javascript权威指南 今天是今年的196天,分享今天的读书笔记. 第2章 词法结构 2.1 字 ...

  5. 《javascript权威指南》读书笔记——第一篇

    <javascript权威指南>读书笔记——第一篇 金刚 javascript js javascript权威指南 由于最近想系统学习下javascript,所以开始在kindle上看这本 ...

  6. Javascript权威指南

    一.数字写法 3.14 2345.789 .333333333333333333 6.02e23 // 6.02 × 10 23 1.4738223E-32 // 1.4738223 × 10 −32 ...

  7. 《JavaScript权威指南 第六版 中文版》(一)

    <JavaScript权威指南 第六版 中文版> 第二章 词法结构 2.1字符集 JavaScript是使用Unicode字符集编码写的. 2.1.1区分大小写 JavaScript是区分 ...

  8. javascript权威指南(中文版)中的一些错误(一)

    本人目前正在学习js,使用的是javascript权威指南(中文版),学习的时候发现一些细节上的错误,若是我的错误,欢迎指正 1.P11------多了“我们称为 原文为 return Math.sq ...

  9. javascript权威指南第6版学习笔记

    javascript权威指南第6版学习笔记 javascript数组.函数是特殊对象 看一点少一点. 3.1.4 hello.js内容是 var x=.3-.2;var y=.2-.1 console ...

  10. JavaScript权威指南学习笔记6

    这两天主要翻看了书中的第18-22章,重点看了第17章:事件化处理,其它几章节主要是翻了下书知道有相关的概念,没有真正理解其中的内容,或者没有考虑究竟如何能把里面的内容应用到实际的项目中.说的讽刺一点 ...

随机推荐

  1. js 封装一个均速动画函数

    //动画函数---任意一个元素移动到指定的目标位置 //element为元素 target为位置 function carToon(element, target) { //设置一个定时器让他循环去增 ...

  2. SDK 开发 .a .framework .bundle (xcode引用) 依赖sdk工程

    一. 静态库.a 1.创建静态库工程 Cocoa Touch Static Libray  ,然后可以创建一个测试视图 TestView 2.暴露头文件 -> Build Phases--> ...

  3. alter table添加表约束

    翻阅了一下网上关于alter table添加表约束的资料,学习下,然后供自己以后使用. 仅仅供自己使用... 总结alter table ### add constraint ## 使用方法 添加表约 ...

  4. flask之werkzeug

    密码存储的主要形式: 明文存储:肉眼就可以识别,没有任何安全性. 加密存储:通过一定的变换形式,使得密码原文不易被识别. 密码加密的几类方式: 明文转码加密:BASE64, 7BIT等,这种方式只是个 ...

  5. tornado 11 异步编程

    tornado 11 异步编程 一.同步与异步 同步 #含义:指两个或两个以上随时间变化的量在变化过程中保持一定的相对关系 #现象:有一个共同的时钟,按来的顺序一个一个处理 #直观感受:需要等待,效率 ...

  6. C++_异常3-异常机制throw try catch

    下面介绍如何使用异常机制来处理错误. C++异常是对程序运行过程中发生的异常情况的一种响应. 异常提供了将控制权从程序的一部分传递到另一部分的途径. 对异常的处理有3个组成部分: 1)引发异常  -- ...

  7. ZOJ - 2401 水DP

    最近会多做点巩固基础的题目 #include<iostream> #include<algorithm> #include<cstdio> #include< ...

  8. 转 Oracle]如何在Oracle中设置Event

    https://www.cnblogs.com/gaojian/p/7619960.html 为了调查Oracle 的故障,可以通过设置event ,来了解详细的状况.方法如下: ■ 如果使用 SPF ...

  9. python 生成嵌套字典

    import collections import json tree=lambda:collections.defaultdict(tree) some_dict=tree() some_dict[ ...

  10. 理解 glibc malloc:主流用户态内存分配器实现原理

    https://blog.csdn.net/maokelong95/article/details/51989081 Understanding glibc malloc 修订日志: 2017-03- ...