JavaScript核心技术开发解密 PDF 原书扫描版

  • 更新时间:
  • 5586人关注
  • 点击下载

给大家带来的一篇关于JavaScript相关的电子书资源,介绍了关于JavaScript、核心技术、开发解密方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小68.4 MB,阳波编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.5分

资源详情相关推荐
JavaScript核心技术开发解密
  • 出版社:电子工业出版社
  • 作者:阳波
  • 大小:68.4 MB
  • 类别:JavaScript
  • 热度:732
  • JavaScript权威指南(第6版)
  • JavaScript网页动画设计
  • 《从0到1:JavaScript 快速上手》视频课,PPT课件,源码
  • 趣学Javascript:教孩子学编程
  • JavaScript之美
  • JavaScript核心技术开发解密

    JavaScript核心技术开发解密电子书封面

    读者评价

    比起高级编程,这个适合快速了解一些深层次的东西
    初学者可以看看,还可以。有些代码有点错误,不过应该都能看出来的
    把各个有用的知识点都讲到了。讲的不是很具体,就像是学校划重点时的笔记,适合在面试找工作前看一看,用于复习、归纳。

    内容介绍

    《JavaScript核心技术开发解密》针对JavaScript 中的核心技术,结合前沿开发实践,对JavaScript 的内存、函数、执行上下文、闭包、面向对象、模块等重点知识,进行系统全面的讲解与分析。每一个知识点都以实际应用为依托,帮助读者更加直观地吸收知识点,为学习目前行业里的流行框架打下坚实基础。本书适合JavaScript 初学者,有一定开发经验但是对于JavaScript 了解不够的读者,以及开发经验丰富但没有形成自己知识体系的前端从业者。

    内容节选

    JavaScript基础教程

     

    JavaScript他是一种描述性语言,其实他并不难学,只要用心学,一定会学好,我相信大家在看这篇文章的时候,一定也学过HTML吧,使用JavaScript就是为了能和网页有更好的交互,下面切入主题。    

    一. JavaScript

    1.什么是JavaScript

    JavaScript是一种描述性语言,也是一种基于对象(Object)和事件驱动(Event Driven)的,并具有安全性的脚本语言。

    2.JavaScript的特点

    JavaScript主要用来向HTML页面添加交互行为。

    JavaScript是一种脚本语言,语法和Java类似。

    javaScript一般用来编写客户端的脚本。

    JavaScript是一种解释性语言。

    3.JavaScript的组成

    ECMScript标准(规定所有属性,方法和对象的标准)

    BOM浏览器对象模型(Browser Object Model):与HTML交互

    DOM文档对象模型(Document Object Model):访问和操纵HTML文档

    4.JavaScript基本结构

    <script language=”javascript” type=”text/javascript”>
    
    </script>
    
    Language=”javascript”用来表示使用的语言是javascript

    5.JavaScript执行原理

    1. 浏览器客户端向服务器端发送请求。(用户在浏览器地址栏中输入的地址)

    2.数据处理:服务器端将某个包含javaScript的页面进行处理。

    3.发送响应:服务器端将含有javascript的HTML文件进行处理页面发送到浏览器客户端,然后由浏览器客户端从上直下逐条解析HTML标签和JavaScript标签,将页面效果呈给用户。

    二.在网页中引入JavaScript的方式

    1.使用<script>标签。

    2.使用外部JavaScript文件。

    希望多个页面中运行JavaScript实现相同效果,通常使用外部文件为.js的文件。

    如何引用.js为扩展名的文件:

    <script src=”../1.js”></script>

    注意:外部文件不能包含<script></script>

    3.直接在HTML标签中

    <input name='btn' type=”button” value=”弹出消息框” onclick=”javascript:alert(“欢迎你”);”/>

    三.JavaScript核心语法

    1.变量的声明和赋值

    变量的声明只有用var,变量的命名规范和Java类似。Var num=1;

    在JavaScript中变量可以不用声明就可以直接使用,但是不推荐这种用法。

    2.数据类型

    Undefined(未定义类型)

    Null(空类型)

    Number(数字类型)

    String(字符串类型)

    Boolean(布尔类型)

    3.undefined和null的区别

    null 表示"没有对象",即该处不应该有值。典型用法是:

    (1) 作为函数的参数,表示该函数的参数不是对象。

    (2) 作为对象原型链的终点。

    Object.getPrototypeOf (Object.prototype)// null

    undefined 表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:

    (1)变量被声明了,但没有赋值时,就等于 undefined。

    (2) 调用函数时,应该提供的参数没有提供,该参数等于 undefined。

    (3)对象没有赋值的属性,该属性的值为 undefined。

    (4)函数没有返回值时,默认返回 undefined。

    4.只有6种情况,判定结果为假。

    null,false,undefined,0,"",NaN

    5.字符串的一些常用方法

    toString();返回字符串

    toLowerCasee();把字符串装换为小写。

    toUpperCase();把字符串转换成大写

    charAt(index);返回在指定位置的字符串

    indexOf(str,index);查找某个指定的字符串在字符串中首次出现的位置

    Substring(index,index);返回位于指定索引index1和index2之间的字符串(包括index1不包括index2)

    Split(str);将字符串分割为字符数组

    6.创建数组并为数组赋值的三种方式

    01. Var num=(‘1','2');

    02.var num=new Array(2);

    Num[0]=1;

    Num[1]=2;

    03.var num=[‘1','2'];

    数组的常用方法和属性
    Length:设置或返回数组中元素的数目

    Join():把数组的所有语速放入一个字符串,通过分割符进行分割。

    Sort():对数组进行排序

    Push():向数组末尾添加一个或更多元素,并放回新的长度。

    <script type="text/javascript">

    //01.方式一:创建数组,并给数组赋值

    // var fruit = new Array('apple', 'orange', 'peach', 'bananer');

    //02.方式二:先创建数组,后通过下标给数组赋值

    var fruits = new Array(4);

    fruits[0] = 'apple';

    fruits[1] = 'orange';

    fruits[2] = 'peach';

    fruits[3] = 'bananer';

    //03方式三:和方式一类似只不过改变了符号

    //var fruitss = new Array['apple', 'orange', 'peach', 'bananer'];

    //04.访问数组中下标为3的数据

    document.write(fruits[0]);

    //05通过数组的join方法把元素放到字符串中并用指定分隔符进行分割

    var result = fruits.join(',');

    //06通过sort方法对数组进行排序

    fruits.sort();

    //06.向末尾添加一个或多个元素,最后返回该数组的新长度

    var length= fruits.push('wert','foot');

    document.write('\n' + length);

    //07.遍历数组

    for(var item in fruits)

           {

     alert(fruits[item]);

           }

    </script>

    7.运算符

    wps9702.tmp

    8 程序调试

    方案一:在VS中调试

    步骤:01.将要调试的页面设置成起始页

    02.设置断点

    03.按F5启动调试

    方案二:chrome浏览器调试

    步骤:01.点击F12,将工具调出

    02.设置断点

    03.刷新页面

    方案三:IE浏览器

    步骤:01.F12,开发人员工具

    02.切到脚本选项卡

    03.设置断点

    04.启动调试

     05.刷新

    四.JavaScript中的函数

    1.常用的系统函数

    01.   parseInt(“字符串”);

    parseInt()函数首先查看位置为0处的字符,判断他是否为一个有效数字,如果不是则返回NaN,不在执行其他操作,但如果该字符是有效参数,则该函数将查看位置为1处的字符,进行同样的测试,这一过程将持续到发现该字符是有效字符为止,此时该字符将之前的字符串转换成数字。

    eg:

    var num1=parseInt(“78.9”)//返回值为78

    var num2=parseInt(“afa78.9”)//返回值为NaN

    02.parseFloat(“字符串”);

    他的用法和parseInt类似,只不过字符串中出现的第一个点将被认为是有效字符.

    eg:

    var num1=parseInt(“78.9”)//返回值为78

    var num2=parseInt(“afa78.9”)//返回值为NaN

    2.自定义函数

    在JavaScript中,自定义函数是由function,函数名,一组以参数以及置于括号中待执行的JavaScript语句组成。

    下面来看一看语法:

    function 函数名(参数1,参数2,..)

    {

    //JavaScript语句

    [return 返回值]

    }

    function是定义函数的关键字,必须有。

    参数1,和参数2是该函数的参数,因为JavaScritp他本省的类型是弱类型,所有在给定参数时没有必要提供类型

    {}定义的函数的开始和结尾.

    return 语句用来规定函数返回的值.

    2.调用函数

    要执行一个函数,首先肯定要调用这个函数,必须制定函数名和其后的参数。

    eg:

    <script type=”text/javascript”>
    
    function show(){
    
    
    
    }
    
    show();
    
    </script>

    3.匿名函数

     

    匿名函数就是没有名字的函数了,也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值,很多新手朋友对于匿名函数不了解。这里就来分析一下。

    function 函数名(参数列表){函数体;}

    如果是创建匿名函数,那就应该是:

    function(){函数体;}

    因为是匿名函数,所以一般也不会有参数传给他。

    为什么要创建匿名函数呢?在什么情况下会使用到匿名函数。匿名函数主要有两种常用的场景,一是回调函数,二是直接执行函数。

    eg:

    <script language="javascript">
    var a = "a";
    (function(){
      var a="b";
      alert(a);
    })();
    alert(a);
    </script>

    在上面这段代码中,会顺序输出两个alert框。第一个alert框内容为b,第二个为a。以为该Script标签中有一个匿名方法时自调用的,所有首先弹出b,然后碰到匿名方法后的alert(a)则弹出a。

    目录

    • 1 三种基础数据结构1
    • 1.1 栈 1
    • 1.2 堆 3
    • 1.3 队列. 4
    • 2 内存空间5
    • 2.1 基础数据类型与变量对象. 5
    • 2.2 引用数据类型与堆内存空间 . 7
    • 2.3 内存空间管理 . 9
    • 3 执行上下文11
    • 3.1 实例1 11
    • 3.2 实例2 15
    • 3.3 生命周期 18
    • 4 变量对象20
    • 4.1 创建过程 20
    • 4.2 实例分析 23
    • 4.3 全局上下文的变量对象 26
    • 目录| vii
    • 5 作用域与作用域链27
    • 5.1 作用域 . 27
    • 5.1.1 全局作用域27
    • 5.1.2 函数作用域28
    • 5.1.3 模拟块级作用域 29
    • 5.2 作用域链 31
    • 6 闭包33
    • 6.1 概念. 33
    • 6.2 闭包与垃圾回收机制 . 38
    • 6.3 闭包与作用域链 39
    • 6.4 在Chrome 开发者工具中观察函数调用栈、作用域链与闭包. 41
    • 6.5 应用闭包 49
    • 6.5.1 循环、setTimeout 与闭包. 49
    • 6.5.2 单例模式与闭包 50
    • 6.5.3 模块化与闭包 . 53
    • 7 this 59
    • 8 函数与函数式编程67
    • 8.1 函数. 67
    • 8.2 函数式编程. 75
    • 8.2.1 函数是一等公民 77
    • 8.2.2 纯函数 . 80
    • 8.2.3 高阶函数 85
    • 8.2.4 柯里化 . 91
    • 8.2.5 代码组合 101
    • viii | 目录
    • 9 面向对象106
    • 9.1 基础概念 106
    • 9.1.1 对象的定义106
    • 9.1.2 创建对象 107
    • 9.1.3 构造函数与原型 108
    • 9.1.4 更简单的原型写法114
    • 9.1.5 原型链 . 114
    • 9.1.6 实例方法、原型方法、静态方法117
    • 9.1.7 继承118
    • 9.1.8 属性类型 122
    • 9.1.9 读取属性的特性值127
    • 9.2 jQuery 封装详解 127
    • 9.3 封装一个拖曳对象. 134
    • 9.4 封装一个选项卡 147
    • 9.5 封装无缝滚动 . 153
    • 10 ES6 与模块化159
    • 10.1 常用语法知识 . 160
    • 10.2 模板字符串. 167
    • 10.3 解析结构 168
    • 10.4 展开运算符. 171
    • 10.5 Promise 详解173
    • 10.5.1 异步与同步173
    • 10.5.2 Promise. 175
    • 10.5.3 async/await . 185
    • 10.6 事件循环机制 . 189
    • 10.7 对象与class . 197
    • 10.8 模块化 . 202
    • 10.8.1 基础语法 204
    • 10.8.2 实例209
    展开阅读

    资源下载

    相关资源

    • 你不知道的JavaScript(中卷)

      你不知道的JavaScript(中卷)

      JavaScript这门语言简单易用,很容易上手,但其语言机制复杂微妙,即使是经验丰富的JavaScript开发人员,如果没有认真学习的话也无法真正理解。

      大小:7.8 MBJS

      立即下载
    • JavaScript编程全解

      JavaScript编程全解

      JavaScript编程全解 全方位地介绍了JavaScript开发中的各个主题,无论是前端还是后端的JavaScript开发者都可以在本书中找到自己需要的内容。本书对HTML5、Web API、Node.js及WebSocket等最新的热门技术也

      大小:6.67 MBjs编程

      立即下载
    • 《从0到1:HTML+CSS+JavaScript快速上手》PPT课件,视频课

      《从0到1:HTML+CSS+JavaScript快速上手》PPT课件,视频课

      编辑推荐 源自阅读量破6000万的人气教程 适合零基础初学者,1小时快速上手,7天轻松入门 通俗易懂,风趣幽默,原来前端还能这么玩儿 每一节都配有微视频,每一章都配有大量练习 同步视频 配套练习 课件PPT 源码素材 作者答疑 如果你需要的不是大而全,而是恰到好处的前端开发教程,那么不妨试着看一下这本书。 本书源于作者在绿叶学习网分享的超人气在线教程。由于教程的风格独特、质量很高,因而累积获得超过十万读者的支持。为了更好地帮

      大小:4.4 GBWeb前端

      立即下载
    • JavaScript教程

      JavaScript 是前端开发者使用的主要编程语言,随着前端技术的发展,这门语言的边界也得以不断扩展。我们在这里选择了与 JavaScript 相关的经典文章,可以让大家对如何学习这门语言有一些全面的认识。特别的,我们还着重于 JavaScript 这门语言与其它编程语言的不同之处,方便大家深入理解。

      大小:5.5 MBJavaScript

      立即下载
    • 编写可靠的JavaScript代码

      编写可靠的JavaScript代码

      《编写可靠的JavaScript代码 测试驱动开发JavaScript商业软件》分为5个部分: 第Ⅰ部分奠定坚实的基础涵盖了软件工程的关键概念,例如SOLID和DRY原 则,还讨论了单元测试和测试驱动开发的优点。

      大小:102 MBJavaScript

      立即下载
    • 学习JavaScript数据结构与算法(第3版)

      学习JavaScript数据结构与算法(第3版)

      大小:13.6 MBJavaScript

      立即下载
    • JavaScript高级程序设计

      JavaScript高级程序设计

      《 JavaScript高級编程设计(第3版) 》是JavaScript超級畅销书的*版。ECMAScript5和HTML5在规范之战中同时获胜,使很多特有保持和手机客户端拓展宣布进到标准,另外也为JavaScript增加了许多融入发展方

      大小:23 MBJS程序设计

      立即下载

    学习笔记

    13小时52分钟前回答

    Javascript技术栈中的四种依赖注入小结

    作为面向对象编程中实现控制反转(Inversion of Control,下文称IoC)最常见的技术手段之一,依赖注入(Dependency Injection,下文称DI)可谓在OOP编程中大行其道经久不衰。比如在J2EE中,就有大名鼎鼎的执牛耳者Spring。Javascript社区中自然也不乏一些积极的尝试,广为人知的AngularJS很大程度上就是基于DI实现的。遗憾的是,作为一款缺少反射机制、不支持Annotation语法的动态语言,Javascript长期以来都没有属于自己的Spring框架。当然,伴随着ECMAScript草案进入快速迭代期的春风,Javascript社区中的各种方言、框架可谓群雄并起,方兴未艾。可以预见到,优秀的JavascriptDI框架的出现只是早晚的事。 本文总结了Javascri……

    网友NO.20373
    网友NO.20373

    javascript全局变量是全局对象的属性,这是在ECMAScript规范中强制规定的。对于局部变量则没有此规定,但我们可以想象得到,局部变量当做跟函数调用相关的某个对象的属性。ECMAScript3规范称对象为“调用对象”(call object),ECMAScript5规定范称为“声明上下文对象”(declarative environment record)。javascript可以允许使用this关键字引用全局对象,却没有方法可以引用局部变量中存放的对象。这种存放局部变量的对象的特有性质,是一种对我们不可见的内部实现。然而,这些局部变量对象存在的观念是非常重要的。

    网友NO.44163
    网友NO.44163

    和其它编程语言不同,javascript不区分整数数值和浮点数数值。javascript中的数值均用浮点数数值来表示。当一个数字直接出现在javascript程序中,我们陈之为数字直接量(numeric literal),javascript支持多种格式的数字直接量。(注意:在任何数字前直接添加负号(-)可以得到它们的负值)但负号是一元求反运算符。,并不是数字直接量语法的组成部分。)

    网友NO.49878
    网友NO.49878

    计算机程序的运行需要对值(value)比如数字3.14或者文本"hello world"进行操作,在编程语言中,能够表示并操作的值的类型叫做数据类型(type),编程语言最基本的特性就是主持多种数据类型。当程序需要将值保持起来以备将来使用时,便将其赋值给(将值“保存”到)一个变量(variable)。变量是一个值的符号名称,可以通过名称获得对值的引用。变量的工作机制是编程语言的令一个基本特性。本章将参照上节帮助理解本章内容,后续将更深入的讲解。 javascript的数据分为两类:原始类(primitive type)和对象类型(object type) javascript中的原始类包括数字,字符串,布尔值,本章会有单独的章节专门讲述javascript的数字、字符串、布尔值。javascript还有两个特殊的原始值,null(空)和Undefined(未定义),他们不是数字、字符串、布尔值。它们分别代表了各自特殊类型的唯一成员。