1. 谁能推荐一些关于VC++和Matlab的原版书
[精华] 提供一些c书下载地址! 需要的朋友来~~
--------------------------------------------------------------------------------
http://www.chinaunix.net 作者:hancang 发表于:2006-03-16 22:35:15
【发表评论】【查看原文】【C/C++讨论区】【关闭】
C++编程思想——C++的神奇书籍 13.82 MB
·本书作者根据自己学习C++的亲身体会及多年教学经验,用简单的例子和简练的叙述讲解C++编程,别具特色。 全书共分十八章,内容涉及对象的演化、数据抽象、隐藏实现、初始化与清除、函数重载与缺省参数、输入输出流介绍、常量、内联函数、命...
钱能C++程序设计教程 6.8 MB
·钱能C++程序设计教程虽然是很老的书,不过总算是国产书中质量不错中的一本,适合C++初学者....
The C++ Standard Library 4.24 MB
·虽然也是老书,但是够经典,:-) Programming with the C++ Standard Library can certainly be difficult, but Nicolai Josuttiss The...
C++PrimerPlus 4thEdition 4.34 MB
·The fourth edition presents the ANSI C++ standard beginning with a discussion of the essential elements of C++ program...
C++ Primer 中文版(第三版)完全版 3.81 MB
·C++ Primer的第三版结合了Stanley Lippman的实践经验和Josée Lajoie对于ANSI/ISO标准C++的深入理解。这本指导书的第三版已经被重新改写过,以便更加精确地讲述标准C++的特性和用法。在本书中,对于C...
Exceptional C++ 351 KB
·本书详细地讨论了如何编写健壮高效的代码以及模块设计技术。本书采用了自问自答的语言风格,它讨论了实际程序设计中普遍存在的,又非常不易察觉的问题,并且进行了深刻的分析,提出了具有广泛意义的解决方案。本书值得每个想成为优秀c++程序员的人阅读...
Inside the C++ Object Model 2003-12-17 741 KB 378
·Bestselling author Stanley B. Lippmans Inside the C++ Model provides valuable insight into some of the internal...
Secure Programming Cookbook for C and C++ 1.34 MB
·Secure Programming Cookbook for C and C++...
The C++ Programming Language 3rdEdition 3.99 MB
·In this brand-new third edition of The C++ Programming Language, author Bjarne Stroustrup, the creator of C++, ...
C-C++ 最佳编程指南 41.28 MB
·C-C++ 最佳编程指南...
上述书籍下载地址是
http://newzone.vicp.net/softdown/SoftList/Catalog_36_SoftTime_Desc_1.html
深度探索C++对象模型 7.86 MB
高质量C++编程指南 326 KB
C与C++中的异常处理 53 KB
C++ Primer 题解 6.57 MB 0
Effective C++中文版 255 KB
Essential C++中文版(全) 7.88 MB
C++视频学习(RM) 1200 MB
C++沉思录 pdf版 7.46 MB
Visual C++ 运行库参考手册 8.43 MB
Visual C++ 6.0 数据库编程大全 6 10.86 MB
Visual C++经典 13.53 MB
Visual C++编程技巧 241 KB 896
Optimizing C++ 370 KB 9976
数据结构 C++ 语言描述 20.88 MB
C++ In Action 1.51 MB
Visual.C++技术内幕 78.57 MB
C++.Primer.3rd.Edition 中文完美版 4.5 MB
上述书籍去
http://www.sron.net里面找吧~~
:em17: :em17: :em17: :em11: :em11: :em11:
找到好电子书也告诉我啊~~
--------------------------------------------------------------------------------
1.vc++技术内幕第四版 (潘爱民)
ftp://210.32.157.56/课件/c++primer/vc++技术内幕IV(潘爱民).rar
2.C++经典对话系列
中文:http://www.jka77.com/book/cvst_cn.chm
3.MFC Windows 程序设计(第二版)
英文版:http://www.jka77.com/book/progmfc2.chm
中文版:暂无,制作中...
4.Effective C++中文版:
http://dlb.pchome.net/development/reference/effectiveCplus.zip
5.More Effective C++中文版-zhc译
http://cable.pchome.net/development/reference/MEC0410.zip
6.More Effective C++中文版-候捷译
http://www.nethovel.com/resources/MoreEffectiveC++(WQ).zip
7.Essential C++中文版(全)-候捷译
http://www.nethovel.com/resources/Essential%20C++中文版(全).rar
8.深入浅出MFC 2/e
http://218.30.21.125:8084/ebook/programme/mfc2e.zip
9.代码大全中文版
http://www.delphidevelopers.com/docs/tecsubject/cc/CodeComplet110.zip
11.C++经典对话系列
中文:http://www.jka77.com/book/cvst_cn.chm
12.MFC Windows 程序设计(第二版)
英文版:http://www.jka77.com/book/progmfc2.chm
中文版:暂无,制作中...
13.数据结构 C++ 语言描述(中文版)
http://www.code-labs.com/manual/c_c015.zip
14.java编程思想中文版
ftp://202.118.72.12/pub/doc-book/Java/Java编程思想.zip
15.C++标准库英文版
ftp://166.111.64.4/incoming/新文件夹/f/The%20C++%20Standard%20Library(with%20TOC).pdf
16.Windows核心编程
英文:http://www.fmdstudio.net/book/prgapps4.zip
17.TCP-IP详解卷1:协议
ftp://202.204.4.161/学习资料/TCPIP/TCP-IP详解卷1:协议.pdf
18.TCP-IP详解卷2:实现
ftp://202.204.4.161/学习资料/TCPIP/TCP-IP详解卷3:TCP事务协议,HTTP,NNTP.pdf
19.TCP-IP详解卷3:TCP事务协议
ftp://202.204.4.161/学习资料/TCPIP/TCP-IP详解卷2:实现.pdf
20.实用算法的分析与程序设计
ftp://202.204.8.10/[4]%20编程资源/[%20书籍资料%20]/[算法与数据结构]/实用算法的分析与程序设计.rar
21.vc++技术内幕第四版 (潘爱民)
ftp://210.32.157.56/课件/c++primer/vc++技术内幕IV(潘爱民).rar
22.C++ Primer英文版:
http://computerstep.w18.net/C/C++%20Primer.zip
23.Effective C++中文版:
http://dlb.pchome.net/development/reference/effectiveCplus.zip
24.More Effective C++中文版-zhc译
http://cable.pchome.net/development/reference/MEC0410.zip
25.More Effective C++中文版-候捷译
http://www.nethovel.com/resources/MoreEffectiveC++(WQ).zip
26.Essential C++中文版(全)-候捷译
http://www.nethovel.com/resources/Essential%20C++中文版(全).rar
27.Programming Windows程式开发设计指南-Petzoldi着 余孟学 译
中文版:http://www.nethovel.com/resources/ProgrammingWindows_tw.chm
英文版:http://www.nethovel.com/resources/Petzoldi.chm
28.WinAsm32汇编教程- Iczelion
http://www.nethovel.com/resources/winasm.chm
29.Windows 95 程序设计指南-候捷译
http://www.nethovel.com/resources/win95adg.zip
30.Thinking in C++ 2nd Edition(C++编程思想)
英文版:http://www.nethovel.com/resources/ThinkinginC++.zip
中文版:http://www.dingbing.com/book/thinkc.zip
31.人月神话-中文版
http://www.goodassister.com/book/rysh.pdf
32.The C++ Programming Language英文
http://computerstep.w18.net/C/The%20C++%20Programming%20Language.rar
33.VC技术内幕第五版 http://www.helpwork.com/downdata/book/programming/vc/book/vc++2/invcpp5.chm
34.com技术内幕
http://www.helpwork.com/book/html/user/download.asp?id=1123
35.com+技术内幕
http://www.helpwork.com/book/html/user/download.asp?id=952
36.新编 Windows API参考大全
http://www.4046.com/nnsrc/down/WindowsAPIdq.rar
37.The C programming Language // By Brian W. Kernighan and Dennis M. Ritchie
下载地址:http://www.jka77.com/book/The_C_programmin.chm
38.C语言编程手册
下载地址:http://www.jka77.com/book/CL.chm
39.Delphi 7高效数据库程序设计
By 李维
下载地址:http://www.codestudy.net/book/download.asp?id=1163&;sort=5
40.Windows网络编程(第2版)
By Anthony Jones,Jim Ohlund 清华大学出版社
下载地址:英文版:http://www.guxiang.com/epubcn/readings/diannaotushu/500/download/1107/network_prog_for_win_2nd.zip
41.Windows2000编程技术内幕
By Mickey Williams 机械工业出版社
下载地址:ftp://ftp.frontfree.net/Pub/Books/C&;C++/VC/Windows2000编程技术内幕.rar
42.数据仓库
By W.H.Inmon 清华大学出版社
下载地址1:http://tips.9hao.com/vvbksd/20011120/数据仓库.zip
下载地址2: ftp://ftp.math.nankai.e.cn/Ebook/China-pub/chinapub_computerscience_multimedia/ComputerScience/%CA%FD%BE%DD%B2%D6%BF%E2/
43.编码的奥秘
By Charles Petzold 机械工业出版社
下载地址:ftp://ftp.math.nankai.e.cn/Ebook/China-pub/chinapub_computerscience_multimedia/ComputerScience/%B1%E0%C2%EB%B5%C4%B0%C2%C3%D8/
44.编译原理及实践
By Louden, K.C 机械工业出版社
下载地址:ftp://ftp.math.nankai.e.cn/Ebook/China-pub/chinapub_computerscience_multimedia/ComputerScience/%B1%E0%D2%EB%D4%AD%C0%ED%BC%B0%CA%B5%BC%F9/
45.Inside C++ Object Model(深度探索C++对象模型)
By Lippman 候捷译
下载地址:http://www.jka77.com/book/inside-the-cpp-object-model.pdf
46.C++标准程序库
By Josuttis
下载地址1:http://www.codestudy.net/book/download.asp?id=1205&;sort=5
下载地址2: ftp://ftp.math.nankai.e.cn/Ebook/C_C++/The Cpp Standard Library.pdf
47.STL源码剖析
By 候捷
下载地址:ftp://ftp.math.nankai.e.cn/Ebook/C_C++/STL源码剖析--侯捷.pdf
48.C++批判(第三版) -看看C++的坏话!
By I don't know
下载地址:http://www.jka77.com/book/CPPPP.pdf
49.程序设计实践
下载地址:ftp://ftp.math.nankai.e.cn/Ebook/China-pub/chinapub_computerscience_multimedia/%B3%CC%D0%F2%C9%E8%BC%C6%CA%B5%BC%F9/
50.c++沉思录
By Andrew Koenig Barbara Moo 人民邮电出版社
下载地址:http://www.codestudy.net/book/download.asp?id=1261&;sort=5
51.C++Builder4技术内幕 (这本书俺不知道好不好)
By I don't Know
下载地址:http://www.codestudy.net/book/download.asp?id=1254&;sort=5
52.下面两本书一般大家硬盘里都有的吧,而且很老了,但是为了全面,就提上来吧
(1)Windows 95 程式设计指南 - 候捷
下载地址:http://jjhou.csdn.net/win95-a-developers-guide.pdf
(2)Windows 95 系统程式设计大奥秘 - 候捷
下载地址:http://jjhou.csdn.net/windows95-system-programming-secrets.pdf
53. 中国大网络全书·数学
下载地址:ftp://ftp.math.nankai.e.cn/Ebook/中国大网络全书/中国大网络全书·数学.pdf
54、4.0M Bjarne Stroustrup - The C++ Programming Language
http://www.u-n-f.com/books/archive/The%20C++%20Programming%20Language.tar.gz
55、1.0M Richard Stevens - TCP-IP Illustrated
http://www.u-n-f.com/books/archive/TCP-IP%20Illustrated.tar.gz
56、4.5M Randall Hyde - Art Of Assembly
http://www.u-n-f.com/books/archive/Randall%20Hyde%20-%20Art%20Of%20Assembly.tar.gz
57、2.1M M. Abrash - Zen of Graphics Programming
http://www.u-n-f.com/books/archive/M.%20Abrash%20-%20Zen%20of%20Graphics%20Programming.zip
58、249k Kernighan and Ritche - The C Programming Language
http://www.u-n-f.com/books/archive/Kernighan%20and%20Ritchie%20-%20The%20C%20Programming%20Language.zip
59、3.3M Bruce Schneier - Applied Cryptography
http://www.u-n-f.com/books/archive/Bruce%20Schneier%20-%20Applied%20Cryptography.zip
60、php4_Grundlagen_und_Profiwissen
http://www.u-n-f.com/books/archive/lamp/PHP4_Grundlagen_und_Profiwissen.pdf
61.《C++ Builder高级编程技术》
http://www.dingbing.com/book/builder.zip
62.《VC++ 6.0 TLR 模板库参考手册》
http://www.easysea.com/diannao/download/prog/c/mbkc.zip
63.《BORLAND C++ BUILDER 实用培训教程》
http://202.101.232.120/book/openfile.asp?id=223&;filename=BC98_CB526.zip
64.《Delphi高级开发指南》
http://www.pcbookcn.com/s10899book/program/delphi/Delphi_gjkfzn_for3.rar
65.《新编 Windows API参考大全》
ftp://book:[email protected]/pro/delphi/新编Windows_API_参考大全.rar
66.《Delphi深度历险-附书源码》
http://www.pcbookcn.com/s10899book/program/delphi/Delphi_sdlx_code.rar
67.《Delphi 7高效数据库程序设计》
ftp://book:[email protected]/pro/delphi/李维的新书《Delphi7高效数据库程序设计》.rar
68.《Delphi7开发指南》
ftp://book:[email protected]/pro/delphi/delphi7开发指南.rar
69.《Delphi6集成开发环境》
ftp://book:[email protected]/pro/delphi/Delphi6集成开发环境.rar
70.《Delphi6数据库编程》
ftp://book:[email protected]/pro/delphi/Delphi6数据库编程.rar
72.《Delphi5.xADO_MTS_COM+高级程序设计篇》
ftp://book:[email protected]/pro/delphi/Delphi5.xADO_MTS_COM+高级程序设计篇.rar
73.《VISUAL BASIC 编程标准》
http://www.dingbing.com/book/vb.zip
74.《Visual Basic6.0中文版程序员指南》
http://www.easysea.com/diannao/download/prog/vb/zwbc.zip
75.《Visual Basic 6.0 控件参考手册》
http://www.easysea.com/diannao/download/prog/vb/kjck.zip
76.《Visual Basic 6.0中文版语言参考手册》
http://www.easysea.com/diannao/download/prog/vb/zwby.zip
77.《Visual Basic 6.0 开发宝典》
http://www.easysea.com/diannao/download/prog/vb/kfbd.zip
78.《Visual Basic 6.0 实例教程》
http://www.easysea.com/diannao/download/prog/vb/sljc.zip
79.《VB 6.0 中文版实用参考手册》
http://www.easysea.com/diannao/download/prog/vb/syck.zip
80.《Visual Basic 6开发人员指南》
http://www.easysea.com/diannao/download/prog/vb/kfzn.zip
81.《VB 和 SQL Server 编程指南(第五版)》
http://www.easysea.com/diannao/download/prog/vb/bczn.zip
82.《Jbuilder 5 中文帮助》
http://www.pdown.net/download.asp?downid=2&;id=991
83.《JBuilder开发人员指南》
http://youth.dlmu.e.cn/book/list_down.php?bkid=224
84.《Win32的Internet函数说明》
档案大小: 245248K
http://www.easysea.com/diannao/download/prog/windows/win32int.zip
85.《Visual InterDev 从入门到精通》
http://www.easysea.com/diannao/download/prog/interdev/crmd.wdl
86.《Visual InterDev 6.0 Web 参考手册 》
http://www.easysea.com/diannao/download/prog/interdev/jsck.zip
87.《Visual InterDev 6.0 Guide 程序员》
http://www.easysea.com/diannao/download/prog/interdev/cxyz.zip
88.《javascript 程序开发手册》
http://www.cty99.com/Templet/bookdownmore.asp?booktype=script#
89.《JAVA 大全》
http://www.easysea.com/diannao/download/prog/java/cxkf.zip
90.《Visual J++ 6.0 WFC 类库参考手册》
http://www.easysea.com/diannao/download/prog/java/lkck.zip
91.《Java联想(中文)》
http://www.easysea.com/diannao/download/prog/java/lkck.zip
92.《Oracle 8 实用大全》
http://www.easysea.com/diannao/download/prog/oracle/sydq.zip
93.《Microsoft SQL Server 管理员手册》
http://www.easysea.com/diannao/download/prog/sql/glys.zip
94.《掌握ACCESS开发》
http://www.easysea.com/diannao/download/prog/sql/glys.zip
95.《Oracle Performance Tuning and Optimization》
http://www.oradb.net/book/oracle_pt.zip
96.《Oracle ProC 程序设计》
http://www.oradb.net/book/oracleproc.zip
97.《Oracle8初学者指南》
http://www.easysea.com/diannao/download/prog/oracle/cxzz.zip
98.《RED HAT LINUX 6大全》
http://www.dingbing.com/book/redhatall.zip
99.《RED HAT LINUX 6管理工具》
http://www.dingbing.com/book/redhatman.zip
100.《VC++高级编程》
http://www.easysea.com/diannao/download/prog/c/vcgj.zip
2. TypeScript 入门指南
新系列 深入浅出TypeScript 来了,本系列至少20+篇。本文为第一篇,来介绍一下TypeScript 以及常见的类型。
TypeScript是一门由微软推出的开源的、跨平台的编程语言。它是JavaScript的超集,扩展了 JavaScript 的语法,最终会被编译为JavaScript代码。
TypeScript的主要特性:
TypeScript 主要是为了实现以下两个目标:
下面就来看看这两个目标是如何实现的。
为什么要给JavaScript加上类型呢?
我们知道,JavaScript是一种轻量级的解释性脚本语言。也是弱类型、动态类型语言,允许隐式转换,只有运行时才能确定变量的类型。正是因为在运行时才能确定变量的类型,JavaScript代码很多错误在运行时才能发现。TypeScript在JavaScript的基础上,包装了类型机制,使其变身成为 静态类型 语言。在 TypeScript 中,不仅可以轻易复用 JavaScript 的代码、最新特性,还能使用可选的静态类型进行检查报错,使得编写的代码更健壮、更易于维护。
下面是 JavaScript 项目中最常见的十大错误,如果使用 TypeScript,那么在 编写阶段 就可以发现并解决很多 JavaScript 错误了:
类型系统能够提高代码的质量和可维护性,经过不断的实践,以下两点尤其需要注意:
可以认为,在所有操作符之前,TypeScript 都能检测到接收的类型(在代码运行时,操作符接收的是实际数据;在静态检测时,操作符接收的则是类型)是否被当前操作符所支持。当 TypeScript 类型检测能力覆盖到所有代码后,任意破坏约定的改动都能被自动检测出来,并提出类型错误。因此,可以放心地修改、重构业务逻辑,而不用担忧因为考虑不周而犯下低级错误。
在一些语言中,类型总是有一些不必要的复杂的存在方式,而 TypeScript 尽可能地降低了使用门槛,它是通过如下方式来实现的。
TypeScript 与 JavaScript 本质并无区别,我们可以将 TypeScipt 理解为是一个添加了类型注解的 JavaScript,为JavaScript代码提供了编译时的类型安全。
实际上,TypeScript 是一门“ 中间语言 ”,因为它最终会转化为JavaScript,再交给浏览器解释、执行。不过 TypeScript 并不会破坏 JavaScript 原有的体系,只是在 JavaScript 的基础上进行了扩展。
准确的说,TypeScript 只是将JavaScript中的方法进行了标准化处理:
这段代码在TypeScript中就会报错,因为TS会知道a是一个数字类型,不能将其他类型的值赋值给a,这种类型的推断是很有必要的。
上面说了,TypeScript会尽可能安全的推断类型。我们也可以使用类型注释,以实现以下两件事:
在一些语言中,类型总是有一些不必要的复杂的存在方式,而 TypeScript 的类型是结构化的。比如下面的例子中,函数会接受它所期望的参数:
为了便于把 JavaScript 代码迁移至 TypeScript,即使存在编译错误,在默认的情况下,TypeScript 也会尽可能的被编译为 JavaScript 代码。因此,我们可以将JavaScript代码逐步迁移至 TypeScript。
虽然 TypeScript 是 JavaScript 的超集,但它始终紧跟ECMAScript标准,所以是支持ES6/7/8/9 等新语法标准的。并且,在语法层面上对一些语法进行了扩展。TypeScript 团队也正在积极的添加新功能的支持,这些功能会随着时间的推移而越来越多,越来越全面。
虽然 TypeScript 比较严谨,但是它并没有让 JavaScript 失去其灵活性。TypeScript 由于兼容 JavaScript 所以灵活度可以媲美 JavaScript,比如可以在任何地方将类型定义为 any(当然,并不推荐这样使用),毕竟 TypeScript 对类型的检查严格程度是可以通过 tsconfig.json 来配置的。
在搭建TypeScript环境之前,先来看看适合TypeScript的IDE,这里主要介绍Visual Studio Code,笔者就一直使用这款编辑器。
VS Code可以说是微软的亲儿子了,其具有以下优势:
因为 VS Code 中内置了特定版本的 TypeScript 语言服务,所以它天然支持 TypeScript 语法解析和类型检测,且这个内置的服务与手动安装的 TypeScript 完全隔离。因此, VS Code 支持在内置和手动安装版本之间动态切换语言服务,从而实现对不同版本的 TypeScript 的支持。
如果当前应用目录中安装了与内置服务不同版本的 TypeScript,我们就可以点击 VS Code 底部工具栏的版本号信息,从而实现 “use VS Code's Version” 和 “use Workspace's Version” 两者之间的随意切换。
除此之外,VS Code 也基于 TypeScript 语言服务提供了准确的代码自动补全功能,并显示详细的类型定义信息,大大的提升了我们的开发效率。
1)全局安装TypeScript:
2)初始化配置文件:
执行之后,项目根目录会出现一个 tsconfig.json 文件,里面包含ts的配置项(可能因为版本不同而配置略有不同)。
可以在 package.json 中加入script命令:
3)编译ts代码:
TSLint 是一个通过 tslint.json 进行配置的插件,在编写TypeScript代码时,可以对代码风格进行检查和提示。如果对代码风格有要求,就需要用到TSLint了。其使用步骤如下: (1)在全局安装TSLint:
(2)使用TSLint初始化配置文件:
执行之后,项目根目录下多了一个 tslint.json 文件,这就是TSLint的配置文件了,它会根据这个文件对代码进行检查,生成的 tslint.json 文件有下面几个字段:
这些字段的含义如下;
在说TypeScript数据类型之前,先来看看在TypeScript中定义数据类型的基本语法。
在语法层面,缺省类型注解的 TypeScript 与 JavaScript 完全一致。因此,可以把 TypeScript 代码的编写看作是为 JavaScript 代码添加类型注解。
在 TypeScript 语法中,类型的标注主要通过类型后置语法来实现:“ 变量: 类型 ”
在 JavaScript 中,原始类型指的是 非对象且没有方法 的数据类型,包括:number、boolean、string、null、undefined、symbol、bigInt。
它们对应的 TypeScript 类型如下:
JavaScript原始基础类型TypeScript类型 numbernumber booleanboolean stringstring nullnull undefinendefined symbolsymbol bigIntbigInt
需要注意 number 和 Number 的区别:TypeScript中指定类型的时候要用 number ,这是TypeScript的类型关键字。而 Number 是 JavaScript 的原生构造函数,用它来创建数值类型的值,这两个是不一样的。包括 string 、 boolean 等都是TypeScript的类型关键字,而不是JavaScript语法。
TypeScript 和 JavaScript 一样,所有数字都是 浮点数 ,所以只有一个 number 类型。
TypeScript 还支持 ES6 中新增的二进制和八进制字面量,所以 TypeScript 中共支持 2、8、10和16 这四种进制的数值:
字符串类型可以使用单引号和双引号来包裹内容,但是如果使用 Tslint 规则,会对引号进行检测,使用单引号还是双引号可以在 Tslint 规则中进行配置。除此之外,还可以使用 ES6 中的模板字符串来拼接变量和字符串会更为方便。
类型为布尔值类型的变量的值只能是true或者false。除此之外,赋值给布尔值的值也可以是一个计算之后结果为布尔值的表达式:
在 JavaScript 中,undefined和 null 是两个基本数据类型。在 TypeScript 中,这两者都有各自的类型,即 undefined 和 null,也就是说它们既是实际的值,也是类型。这两种类型的实际用处不是很大。
注意,第一行代码可能会报一个tslint的错误: Unnecessary initialization to 'undefined' ,就是不能给一个变量赋值为undefined。但实际上给变量赋值为undefined是完全可以的,所以如果想让代码合理化,可以配置tslint,将" no-unnecessary-initializer "设置为 false 即可。
默认情况下,undefined 和 null 是所有类型的子类型,可以赋值给任意类型的值,也就是说可以把 undefined 赋值给 void 类型,也可以赋值给 number 类型。当在 tsconfig.json 的"compilerOptions"里设置为 "strictNullChecks": true 时,就必须严格对待了。这时 undefined 和 null 将只能赋值给它们自身或者 void 类型。这样也可以规避一些错误。
BigInt是ES6中新引入的数据类型,它是一种内置对象,它提供了一种方法来表示大于 2- 1 的整数,BigInt可以表示任意大的整数。
使用 BigInt 可以安全地存储和操作大整数,即使这个数已经超出了JavaScript构造函数 Number 能够表示的安全整数范围。
我们知道,在 JavaScript 中采用双精度浮点数,这导致精度有限,比如 Number.MAX_SAFE_INTEGER 给出了可以安全递增的最大可能整数,即 2- 1 ,来看一个例子:
可以看到,最终返回了true,这就是超过精读范围造成的问题,而 BigInt 正是解决这类问题而生的:
这里需要用 BigInt(number) 把 Number 转化为 BigInt ,同时如果类型是 BigInt ,那么数字后面需要加 n 。
在TypeScript中, number 类型虽然和 BigInt 都表示数字,但是实际上两者类型是完全不同的:
symbol我们平时用的比较少,所以可能了解也不是很多,这里就详细来说说symbol。
symbol 是 ES6 新增的一种基本数据类型,它用来表示独一无二的值,可以通过 Symbol 构造函数生成。
注意:Symbol 前面不能加 new关键字,直接调用即可创建一个独一无二的 symbol 类型的值。
可以在使用 Symbol 方法创建 symbol 类型值的时候传入一个参数,这个参数需要是一个字符串。如果传入的参数不是字符串,会先自动调用传入参数的 toString 方法转为字符串:
上面代码的第三行可能会报一个错误:This condition will always return 'false' since the types 'unique symbol' and 'unique symbol' have no overlap. 这是因为编译器检测到这里的 s1 === s2 始终是false,所以编译器提醒这代码写的多余,建议进行优化。
上面使用Symbol创建了两个symbol对象,方法中都传入了相同的字符串,但是两个symbol值仍然是false,这就说明了 Symbol 方法会返回一个独一无二的值。Symbol 方法传入的这个字符串,就是方便我们区分 symbol 值的。可以调用 symbol 值的 toString 方法将它转为字符串:
在TypeScript中使用symbol就是指定一个值的类型为symbol类型:
在ES6中,对象的属性是支持表达式的,可以使用于一个变量来作为属性名,这对于代码的简化有很多用处,表达式必须放在大括号内:
symbol 也可以作为属性名,因为symbol的值是独一无二的,所以当它作为属性名时,不会与其他任何属性名重复。当需要访问这个属性时,只能使用这个symbol值来访问(必须使用方括号形式来访问):
在使用obj.name访问时,实际上是字符串name,这和访问普通字符串类型的属性名是一样的,要想访问属性名为symbol类型的属性时,必须使用方括号。方括号中的name才是我们定义的symbol类型的变量name。
使用 Symbol 类型值作为属性名,这个属性是不会被 for…in遍历到的,也不会被 Object.keys() 、 Object.getOwnPropertyNames() 、 JSON.stringify() 等方法获取到:
虽然这些方法都不能访问到Symbol类型的属性名,但是Symbol类型的属性并不是私有属性,可以使用 Object.getOwnPropertySymbols 方法获取对象的所有symbol类型的属性名:
除了这个方法,还可以使用ES6提供的 Reflect 对象的静态方法 Reflect.ownKeys ,它可以返回所有类型的属性名,Symbol 类型的也会返回:
Symbol 包含两个静态方法, for 和 keyFor 。 1)Symbol.for()
用Symbol创建的symbol类型的值都是独一无二的。使用 Symbol.for 方法传入字符串,会先检查有没有使用该字符串调用 Symbol.for 方法创建的 symbol 值。如果有,返回该值;如果没有,则使用该字符串新创建一个。使用该方法创建 symbol 值后会在全局范围进行注册。
上面代码中,创建了一个iframe节点并把它放在body中,通过这个 iframe 对象的 contentWindow 拿到这个 iframe 的 window 对象,在 iframe.contentWindow上添加一个值就相当于在当前页面定义一个全局变量一样。可以看到,在 iframe 中定义的键为 TypeScript 的 symbol 值在和在当前页面定义的键为'TypeScript'的symbol 值相等,说明它们是同一个值。
2)Symbol.keyFor() 该方法传入一个 symbol 值,返回该值在全局注册的键名:
看完简单的数据类型,下面就来看看比较复杂的数据类型,包括JavaScript中的数组和对象,以及TypeScript中新增的元组、枚举、Any、void、never、unknown。
在 TypeScript 中有两种定义数组的方式:
以上两种定义数组类型的方式虽然本质上没有任何区别,但是更推荐使用第一种形式来定义。一方面可以避免与 JSX 语法冲突,另一方面可以减少代码量。
注意,这两种写法中的 number 指定的是数组元素的类型,也可以在这里将数组的元素指定为其他任意类型。如果要指定一个数组里的元素既可以是数值也可以是字符串,那么可以使用这种方式: number|string[] 。
在JavaScript中,object是引用类型,它存储的是值的引用。在TypeScript中,当想让一个变量或者函数的参数的类型是一个对象的形式时,可以使用这个类型:
可以看到,当给一个对象类型的变量赋值一个对象时,就会报错。对象类型更适合以下场景:
在 JavaScript 中并没有元组的概念,作为一门动态类型语言,它的优势是支持多类型元素数组。但是出于较好的扩展性、可读性和稳定性考虑,我们通常会把不同类型的值通过键值对的形式塞到一个对象中,再返回这个对象,而不是使用没有任何限制的数组。TypeScript 的元组类型正好弥补了这个不足,使得定义包含固定个数元素、每个元素类型未必相同的数组成为可能。
元组可以看做是数组的扩展,它表示已知元素数量和类型的数组,它特别适合用来实现多值返回。确切的说,就是已知数组中每一个位置上的元素的类型,可以通过元组的索引为元素赋值::
可以看到,定义的arr元组中,元素个数和元素类型都是确定的,当为arr赋值时,各个位置上的元素类型都要对应,元素个数也要一致。
当访问元组元素时,TypeScript也会对元素做类型检查,如果元素是一个字符串,那么它只能使用字符串方法,如果使用别的类型的方法,就会报错。
在TypeScript 新的版本中,TypeScript会对元组做越界判断。超出规定个数的元素称作越界元素,元素赋值必须类型和个数都对应,不能超出定义的元素个数。
这里定义了接口 Tuple ,它继承数组类型,并且数组元素的类型是 number 和 string 构成的联合类型,这样接口 Tuple 就拥有了数组类型所有的特性。并且指定索引为0的值为 string 类型,索引为1的值为 number 类型,同时指定 length 属性的类型字面量为 2,这样在指定一个类型为这个接口 Tuple 时,这个值必须是数组,而且如果元素个数超过2个时,它的length就不是2是大于2的数了,就不满足这个接口定义了,所以就会报错;当然,如果元素个数不够2个也会报错,因为索引为0或1的值缺失。
TypeScript 在 ES 原有类型基础上加入枚举类型,使得在 TypeScript 中也可以给一组数值赋予名字,这样对开发者比较友好。枚举类型使用enum来定义:
上面定义的枚举类型的Roles,它有三个值,TypeScript会为它们每个值分配编号,默认从0开始,在使用时,就可以使用名字而不需要记数字和名称的对应关系了:
除此之外,还可以修改这个数值,让SUPER_ADMIN = 1,这样后面的值就分别是2和3。当然还可以给每个值赋予不同的、不按顺序排列的值:
我们可以将一个值定义为any类型,也可以在定义数组类型时使用any来指定数组中的元素类型为任意类型:
any 类型会在对象的调用链中进行传导,即any 类型对象的任意属性的类型都是 any,如下代码所示:
需要注意:不要滥用any类型,如果代码中充满了any,那TypeScript和JavaScript就毫无区别了,所以除非有充足的理由,否则应该尽量避免使用 any ,并且开启禁用隐式 any 的设置。
void 和 any 相反,any 是表示任意类型,而 void 是表示没有类型,就是什么类型都不是。这在 定义函数,并且函数没有返回值时会用到 :
需要注意: void 类型的变量只能赋值为 undefined 和 null ,其他类型不能赋值给 void 类型的变量。
never 类型指永远不存在值的类型,它是那些 总会抛出异常 或 根本不会有返回值的函数表达式的返回值 类型,当变量被永不为真的类型保护所约束时,该变量也是 never 类型。
下面的函数,总是会抛出异常,所以它的返回值类型是never,用来表明它的返回值是不存在的:
never 类型是任何类型的子类型,所以它可以赋值给任何类型;而没有类型是 never 的子类型,所以除了它自身以外,其他类型(包括 any 类型)都不能为 never 类型赋值。
上面代码定义了一个立即执行函数,函数体是一个死循环,这个函数调用后的返回值类型为 never,所以赋值之后 neverVariable 的类型是 never 类型,当给neverVariable 赋值 123 时,就会报错,因为除它自身外任何类型都不能赋值给 never 类型。
基于 never 的特性,我们可以把 never 作为接口类型下的属性类型,用来禁止操作接口下特定的属性:
可以看到,无论给 props.name 赋什么类型的值,它都会提示类型错误,这就相当于将 name 属性设置为了只读 。
unknown 是TypeScript在3.0版本新增的类型,主要用来描述类型并不确定的变量。它看起来和any很像,但是还是有区别的,unknown相对于any更安全。
对于any,来看一个例子:
上面这些语句都不会报错,因为value是any类型,所以后面三个操作都有合法的情况,当value是一个对象时,访问name属性是没问题的;当value是数值类型的时候,调用它的toFixed方法没问题;当value是字符串或数组时获取它的length属性是没问题的。
当指定值为unknown类型的时候,如果没有 缩小类型范围 的话,是不能对它进行任何操作的。总之,unknown类型的值不能随便操作。那什么是类型范围缩小呢?下面来看一个例子:
这里由于把value的类型缩小为Date实例的范围内,所以进行了value.toISOString(),也就是使用ISO标准将 Date 对象转换为字符串。
使用以下方式也可以缩小类型范围:
关于 unknown 类型,在使用时需要注意以下几点:
在实际使用中,如果有类型无法确定的情况,要尽量避免使用 any,因为 any 会丢失类型信息,一旦一个类型被指定为 any,那么在它上面进行任何操作都是合法的,所以会有意想不到的情况发生。因此如果遇到无法确定类型的情况,要先考虑使用 unknown。
3. 《Java Script权威指南第6版》txt下载在线阅读全文,求百度网盘云资源
《JavaScript权威指南 第6版(上、下册)》([美] David Flanagan)电子书网盘下载免费在线阅读
链接: https://pan..com/s/17eugxPdjPd85DkbBUOKmeg
书名:JavaScript权威指南 第6版(上、下册)
作者:[美] David Flanagan
豆瓣评分:8.9
出版社:东南大学出版社
出版年份:2011-1
页数:1078
内容简介:
《JavaScript权威指南(影印版)(第6版)(套装共2册)》是一本针对JavaScript语言的核心内容以及由浏览器定义的客户端JavaScript应用程序编程接口的程序员指南和综合参考书。第6版涵盖了HTML5和ECMAScript5。为了介绍当今Web开发的最佳实践,很多章节被完全重写过。这一版新添加的章节详细讲解了jQuery和服务器端JavaScript编程。《JavaScript权威指南(影印版)(第6版)(套装共2册)》推荐给那些想学习Web编程技巧的有经验的程序员,以及那些想要精通这门语言的JavaScript程序员。
4. 想自学javascript需要首先学习哪些方面的知识
要系统的学习JavaScript要掌握以下知识:首先掌握HTML和CSS,这是基础也是学习JavaScript的时候需要用到的知识。 千锋教育就有线上免费JavaScript线上公开课。
其次,刚开始入门不建议看《JavaScript权威指南》和《JavaScript高级程序设计》这些书籍。并非这些书籍不好,相反这些书籍是公认的好书!主要是因为这些书籍内容太多太厚了,很容易让你走上‘从入门到放弃’道路!对于初学者而言,多而全意味着主次难分,无法取舍;此时你想把JavaScript学好,只能全学,然而很多内容对于初学者而言很难理解!第三,系统地学习JavaScript应根据知识点的难易及内在联系划分阶段:初级->进阶->高级,这样才能更好地学习JavaScript。最后 最好有内行人指导,什么内容常用,什么内容重点掌握等等。如果身边没有这样的人,可以选择报班学习。千锋教育目前在18个城市拥有22个校区,年培养优质人才20000余人,与国内20000余家企业建立人才输送合作关系,院校合作超600所
5. 如何在mac系统下直接利用文件编辑器与终端编程
Mac OS X Terminal 101:终端使用初级教程
July 29, 2012/编程指南
最近学习苹果认证的《Mac OS X Support Essentials》教程,看到 Command Line 一节有很多实用的知识,下面选取一部分翻译 + 笔记,整理成此文。
你可以整天驾驶汽车而不用知道如何修理它们,但是如果你希望当一个维护员,你就需要知道事情是如何运作的。同样的事情也发生在了 Mac OS X 上;你可以一直使用 Mac 而不用知道如何修理它,但是如果你想对系统做一些维护或解决一些问题,那么你需要知道如何使用 command-line。
为什么要使用命令行/如何开启命令行?
许多功能在图形界面不提供,只有通过命令行来实现。
Finder会隐藏许多你不太会需要的文件,然而 command line 会允许你访问所有文件。
通过 command line 可以远程访问你的 Mac(利用 SSH)。
administrators 用户可以通过sudo命令获得 root 用户权限。
通过 command-line script 可以使工作更高效。
Terminal(终端)程序可以在“实用工具”里找到。
如果你开启手动输入用户名登陆模式,登陆时在用户名处输入>console可以直接进入命令行界面。随后你仍然需要登录到一个账户。
初识Command Line
许多命令会花费一些时间来执行,然而这中间不会给出任何提示或者进度条。一般结束后会出现一个“用户名$”的标记。如果没有出现,那么说明最后一条命令正在执行。
一条命令包括 Command Name、Options、Arguments、Extras 四个部分,但是后三个部分有时是可选的。Options 部分用-作为前导符。其中许多命令的 Options 部分只包含单个字母,这时可以合并。例如,ls -lA和ls -l -A是等效的。Arguments 部分用来细化这个命令或指定这个命令具体的实施对象,Extras 部分则用来进一步实现其他功能。
举例:下列命令包含前三个部分,用于删除 Junk 这个程序。
michelle$ rm -R /Applications/Junk.app
如果你输入了一些错误的命令,系统会返回一些错误信息。但是系统却不会阻止你做傻事(例如删除整个用户文件夹)。
关于 man 命令
虽然有上千条命令,每条命令还有许多可选参数和具体的使用方式,但是你却不需要记住这些命令。你只需要记住一个:man
大多数命令都会包含一个使用指南,会告诉你任何你需要知道的关于这个命令的所有细节,在命令行中输入man command-name即可获取。例如,你想知道ls这个命令怎么使用,输入man ls即可进入使用指南页面。
使用指南往往很长,所以你可以使用▲(上箭头)或▼(下箭头)来上下移动,使用来翻页,输入/和关键字来按照关键字搜索,按Q来退出使用指南页面。
那么——如果你连命令名称都不知道怎么办呢?输入man -k和关键字来对整个使用指南数据库进行搜索。
命令行,文件和路径
如果知道如何使用命令是掌握 command line 的第一步,那么第二步就是学习如何在 command line 中使用文件路径。如果你掌握了文件路径,你将会发现这比使用 Finder 更加快捷。
注意
command line 工具是大小写敏感的,并且对于文件名,必须包括扩展名。例如,你想找iTunes这个程序,输入itunes是无效的,必须输入iTunes.app。
Mac OS传统上喜欢使用“文件夹”(folders)这个名称,但是在 command line 中,主要使用“目录”(directory)这个词。这和 UNIX 是一致的。
两种路径:绝对路径和相对路径
绝对路径:完整描述一个文件的位置,总是以斜杠(/)(forward slash)开头。例如/Users/michelle/Public/Drop Box。
相对路径:只描述一部分位置信息,它和你在 command line 目前的目录有关。当你打开新的 Terminal 程序时,command line 会话的目录应该是你的 home folder。这时上面例子文件夹的相对路径写作Public/Drop Box。显然它从当前目录开始。和html类似,你也可以使用两个点(“..”)来代表父目录,这样你就可以用相对路径表示上级或同级目录了。例如你可以输入cd ..甚至cd ../..
切换到其他路径和目录
如果你想将当前 command line 会话切换到其他目录,需要用到三个命令:pwd,ls和cd。
pwd的含义是“print working directory”,会显示当前目录的绝对路径。
ls的含义是“list directory contents”,它会列出当前目录的内容。这个命令还有其他参数可选。
cd的含义是“change directory”,它会改变当前目录到你指定的目录。如果你不指定,则会返回你的 home folder。
处理特殊字符
如果目录中有特殊字符(空格,括号,引号,[],!,$,&,*,;,|,),那么直接输入空格会造成系统识别困难,必须使用特殊的语法来表示这些字符。例如上例中,空格前添加反斜杠“”(back slash)即可:cd Punlic/Drop Box/。除了反斜杠,也可以用引号的方法:cd "Public/Drop Box"。
——如果不想手动输入,也可以把文件从 Finder 拖到 Terminal 窗口来创建绝对路径,这会方便一些,因为上面提到的所有特殊字符在拖动后都会自动变成系统可识别的表示方法。其实,更有效率的解决方案是使用 Tab Complete 功能。
Tab Complete 是 command line 中最能给你节省时间的特性之一,利用它的自动完成文件、目录名称功能还可以防止你输入错误。使用cd进入你的 home folder,使用cd P命令,然后按下tab按键。你可能会听到错误音,因为你的 home folder 内有多个 P 开头的文件夹。再按一次tab,Terminal 将会为你列出 P 开头的两个文件夹:Public 和 Pictures。按U,再按tab,Terminal 则会自动为你补全Public/。Tab complete 同样会处理那些特殊字符。注意,这会在末尾保留/符号,大部分时候这没问题,但如果出错,移除多余的/试一试。
另外,鄂化符~(tilde)在command line 中可以代表当前用户的 home folder。例如~/Public/Drop Box/是合法的。
查看隐藏文件
为了简化工作,command line 和 Finder 都会隐藏许多文件和文件夹,这些内容通常是系统需要的。不借助第三方工具让 Finder 显示隐藏文件比较困难,但是在 command line 中却非常简单。首先,许多隐藏文件的隐藏是通过隐藏属性在 Finder 中隐藏的,而 command line 会忽略这些属性,所以这些文件会在 command line 中显示。另外,ls命令会隐藏文件名以.开头的文件,但是这些文件却可以被显示出来,方法是利用-a选项。例如:
michelle$ ls -la
我们还添加了-l选项,目的是控制输出格式。如果你注意输出内容的话,会发现还包括.和..两项,它们分别表示当前文件夹和父文件夹(如图)。如果你不想显示这两项,只需要把-a改成-A即可。
编辑文件和文件夹
有许多基础的命令用来编辑文件和文件夹,包括mkdir,cp,mv,rm,rmdir以及vi。下面我们来简要地介绍一下这些命令。
mkdir
“make diretory”的缩写,用来创建文件夹,语法为mkdir后接新文件夹的目录。可以用-p选项,来一起创建路径中不存在的文件夹(这样你就不用挨层创建了)。
cp
“”的缩写,用来把文件从一处复制到另一处。语法为cp后接原始路径,后接目标路径。如果你想复制整个文件夹和所有内容,需要添加-R选项。如果指定的目标路径不含文件名,则 cp 命令会按原名复制。如果指定的目标路径包括文件名,则会复制为你指定的文件名。如果仅指定新文件名,则会在原处以新名称创建文件副本。注意,系统会自动替换同名文件而不出现提示。
mv
“move”的缩写,用来移动文件。语法为mv后接原路径,后接新路径。mv 的指定路径规则和 cp 是一样的(没错,如果仅指定新文件名,它就成了重命名命令)。
rm
“remove”的缩写,会永久删除文件。注意,command-line中没有废纸篓。语法为rm后接文件路径。然而,使用 rm 命令删除的文件有可能可以通过数据恢复工具恢复。如果希望安全删除文件,可以使用srm命令。
rmdir和rm -R
rmdir是“remove directory”的缩写,这个命令会永久删除文件夹。再强调一遍,CLI 中木有废纸篓。语法为rmdir后接希望删除目录的路径。然而,rmdir 命令无法删除含有任何其他文件的文件夹,所以大多数情形下rmdir命令是不适用的。不过,你可以利用rm添加-R选项来删除文件夹及包含的所有文件。
vi
代表“visual”(视觉的),然而这个名称相当具有讽刺意味:vi可能是可视化效果最差的文本编辑器了。然而,vi 是 command line 中最常见的文本编辑器。用vi打开文本文件,只需要输入vi后接文件路径即可。Mac OS X 还提供了nano,一个更加现代的文本编辑器。它也更加方便,例如在底部包含了一个作弊小条(=_=),上面有常用的快捷键列表(你就不用背下来它们了)。然而,vi却有时是默认的文本编辑器,所以掌握vi是很有用的。
和less命令类似,vi命令会占用整个 Terminal 空间来显示文件内容。打开后,在“command模式”,vi 会等你输入一些预定义字符来告诉 vi 你想做什么。你也可以使用键盘上的箭头键单纯地浏览文件。你想编辑时,按A开始(会进入编辑模式)。文字会插入到光标处。如果你想保存,需要先退出编辑模式进入 command 模式。方法是按下esc键。回到 command 模式后,按住shift同时按两次Z来保存并退出。如果你不想保存,在 command 模式输入:quit!并按enter
return直接退出。
用Command-Line管理系统
使用su来切换用户
su命令代表“substitute user identity”,允许你在命令行中轻松切换到另一个用户账户。语法为su后接用户的短名称。然后会要求你输入密码(但是输入的时候不会显示)。执行完毕后,命令的前缀会改变,表示你拥有其他用户的权利。你可以利用who -m命令来验证当前登陆的身份。切换后,你会一直保持该用户身份,直至退出 Terminal 或者输入exit命令。
关于sudo的使用
sudo概述
更强大的命令就是sudo,代表“substitute user do”,或者,更恰当地,“super user do”。用sudo执行一个命令会使用 root 账户权限。当然,使用之前需要 administrator 账户(管理员账户)的授权(如输入密码)。
默认情况下,任何管理员账户都可以使用sudo来获取 root 权限,甚至当 root 账户在图形界面被禁用的情况下,sudo依然有效。这个命令是很多情况下我们不得不使用 Terminal 的原因,——同样也是给每个用户管理员身份的危险所在。不过,你可以调整sudo的配置文件,来限制它的使用。
bogon:~ renfei$ cat secret.txt
cat: secret.txt: Permission denied
bogon:~ renfei$ sudo cat secret.txt
Password:
This is the contents of the secret.txt text file that the user account renfei does not normally have access permissions to read. However, because he is an administrative user, she can use the sudo command to envoke root user access and read the contents of this file.
提示:如果由于你忘了使用sudo而导致命令行返回一个错误,只需输入sudo !!就可以用sudo来执行上一条指令。
记住,权力越大责任越大。不恰当地使用sudo可以轻易破坏你的系统设置。命令行只会在你第一次执行严重破坏性行为之前提示你,之后,它就会假设你清楚自己正在干什么。如果你只掌握三条使用命令行的准则,那将是:总是仔细检查你的命令;总是使用Tab completion来帮助你避免拼写错误;使用sudo之前,总是仔仔细细检查你的命令。
使用 sudo 切换 Shell
如果你是一个管理员用户,你需要执行很多条需要 root 权限的命令,你可以临时切换整个命令行 shell 来取得 root 级别的访问权限。方法就是先输入sudo -s,回车后再键入你的密码。
其他Command-Line技巧提示
输入命令open .可以用 Finder 打开当前的位置。
在 Terminal 的偏好里面可以设定它的外观和风格。
中止一个错误的或者发疯的命令,可以使用组合键control+C。
你可以在执行前编辑命令,只需要使用箭头和键盘上的其他字母。
没有输入任何命令时,你可以用▲和▼来浏览历史命令。同样可以编辑和再次执行。
你也可以使用history命令查看历史记录。
你可以使用组合键control+L清屏。
6. 《深入理解JavaScript》epub下载在线阅读,求百度网盘云资源
《深入理解JavaScript》AxelRauschmayer电子书网盘下载免费在线阅读
链接: https://pan..com/s/19DH58kzV7ZyfCrXjGFjsNA
书名:深入理解JavaScript
作者名:AxelRauschmayer
豆瓣评分:8.2
出版社:人民邮电出版社
出版年份:2015-12
页数:413
内容介绍:
avaScript是目前Web开发领域非常流行的一种编程语言,得到众多IT从业人员和编程爱好者的关注。本书是一本全面、深入介绍JavaScript语言的学习指南。本书共分四个部分,第1部分帮助读者快速入手,掌握基本的JavaScript编程要点;第2部分介绍JavaScript的发展和技术背景;第3部分深入探索JavaScript,介绍了语法、值、运算符、布尔类型、数字、字符串、语句、异常捕获、函数、变量、对象与继承、数组、正则表达式、Date、Math、JSON、标准全局变量、编码和JavaScript、ECMAScript 5的新特性等内容;第4部分介绍技巧、工具和类库,帮助读者更好地运用JavaScript进行编程。本书内容由浅入深,非常适合想要快速学习JavaScript编程或者深入钻研JavaScript的读者参考。
作者介绍:
Dr.Axel Rauschmayer 专攻JavaScript和Web开发领域。他在2ality.com写博客,教Ecmanauten,编辑JavaScript Weekly周刊,组织MunichJS用户组。Axel从1985年开始编程,1995年开始开发web应用。