文档章节

《JavaScript权威指南》笔记(一)

小微
 小微
发布于 2012/08/28 11:04
字数 1353
阅读 742
收藏 22

《JavaScript权威指南》真是名符其实的好书!真遗憾初学JavaScript时没有立即读这本书,甚为遗憾。不过小有经验之后读来更是有如醍醐灌顶一般,许多之前遇到的奇怪问题和读不懂的代码都迎刃而解。这里简要记录一下其中觉得颇有价值的一些知识点。不过真心要学好JavaScript的同学还是耐心读完全书吧,虽然这本书900多页,厚得令人生畏,但真的读来不遗憾,非常有意义。

第一篇笔记的内容主要涉及:关键字、特殊值、数据类型及转换等。

1. javascript区分大小写,xhtml也区分大小写,但是html不区分大小写。(所以说html不够严格嘛~)

2. javascript保留字、ECMA扩展保留的关键字、javascript预定义的全局变量名或函数名

这几个知识点特别容易弄混。我个人的理解是:

  • javascript保留字:真正意义上的保留字(关键字)
  • ECMA扩展保留的关键字:结合java、C++等面向对象语言的思路,将来有可能新加入的关键字
  • javascript预定义的全局变量名或函数名:javascript语言中提供的有用的常用的变量和函数

这几个知识点一般是按照字母顺序给出,但我觉得有时候不容易记住,所以按它们的功能进行了小归类:

(1)javascript保留字

  • if分支语句:if, else
  • switch分支语句:switch, case, default, break
  • 循环语句:do, while, for, continue
  • 异常处理语句:try, catch, finally, throw
  • 获取类型:typeof, instanceof
  • 布尔值:true, false, null
  • 函数相关:var, void, function, return
  • 其他:in, this, with, new, delete

(2)ECMA扩展保留的关键字

  • 基本数据类型:byte, char, boolean, int, short, long, float, double, enum
  • 继承:implements, extends, super
  • 类与接口:class, interface
  • 用来修饰函数的关键字:abstract, native, static, final, const, volatile, synchronized
  • 导入导出:export, import
  • 访问权限:private, protected, public
  • 其他:goto, package, throws, transient, debugger

(3)javascript预定义的全局变量名或函数名

  • 数据类型:Number, Boolean, String, undefined, Object, Array, Function, Date, Math, RegExp, Error
  • 错误类型:EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError
  • 编码:decodeURI, decodeURIComponent, encodeURI
  • 转义:escape, unescape
  • 类型转换:parentInt, parentFloat
  • 特殊值及判断:isFinite, isNaN, NaN, Infinity
  • 其他:arguments, eval

最后注意:我们常用的函数alert()不属于上面的三类。

3. javascript数据类型

  • 基本数据类型:
    • 数字:
      • 整型直接量
      • 八进制和十六进制的直接量
      • 浮点型直接量(小数点和指数计数法两种方式)
      • 特殊值
    • 文本字符串:由Unicode字符、数字、标点符号等组成的序列
    • 布尔值
  • 小数据类型:null, undefined
  • 复合数据类型:对象:已命名的数据的集合,这些数据被作为对象的属性(或域)来引用
    • 已命名的值的无序集合
    • 数组:有编号的值的有序集合
    • 函数:具有可执行代码的对象
    • 专用对象:对象的新的类:Date, Math, Error, RegExp

4. 数字中的特殊值

  • Infinity:表示无穷大的特殊值
  • NaN:特殊的非数字值(产生未定义的结果或错误时出现,如除0)
  • Number.MAX_VALUE:可表示的最大数字
  • Number.MIN_VALUE:可表示的最小数字(与0最接近的数字)
  • Number.NaN:特殊的非数字值
  • Number.POSITIVE_INFINITY:表示正无穷大的特殊值
  • Number.NEGATIVE_INFINITY:表示负无穷大的特殊值

注意:NaN和任何数值都不相等,包括它自己在内,因此需要用isNaN()来检测。isFinite()用来检测一个数字是否是NaN、正无穷大或负无穷大。

5. javascript字符串常用函数

  • .length:长度
  • .charAt(a):取得第a个字符(从0开始)
  • .subString(a, b):取得下标为a到下标为b-1的子字符串
  • .indexOf('a'):查找第一个字母'a'的位置

6. javascript各类型相互转换的对应值

(1)undefined与其他类型转换:

  • 布尔环境下:false
  • 数字环境下:NaN
  • 字符串环境下:undefined
  • 对象环境下:Error

(2)null与其他类型转换:

  • 布尔环境下:false
  • 数字环境下:0
  • 字符串环境下:null
  • 对象环境下:Error

(3)布尔类型(true和false):

  • 数字环境下:true为1,false为0
  • 字符串环境下:true为"true",false为"false"
  • 对象环境下:Boolean对象

(4)字符串(非空字符串与空字符串):

  • 布尔环境下:非空为true,空为false
  • 数字环境下:非空为字符串的数字值或NaN,空为0
  • 对象环境下:String对象

(5)数字(Number对象:0、NaN、无穷、负无穷、任意其他数字):

  • 布尔环境下:0和NaN时为false,无穷、负无穷和其他任意数字时为true
  • 字符串环境下:0为"0",NaN为"NaN",无穷为"Infinity",负无穷为 "-Infinity",其他任意数字就是该数字字符串值

(6)其他对象:

  • 布尔环境下:非空对象为true
  • 数字环境下:空对象则为NaN,调用valueOf()方法若返回基本类型则使用该值,若返回对象自己则先调用toString()方法把对象转换为一个字符串,再把该字符串转换为一个数字
  • 字符串环境下:调用toString()方法返回字符串的值

下一篇链接:《JavaScript权威指南》笔记(二)

© 著作权归作者所有

共有 人打赏支持
小微
粉丝 115
博文 78
码字总数 81696
作品 0
海淀
程序员
私信 提问
加载中

评论(2)

w
wt0629
∠(`ω´*)敬礼
凌晨4点半
凌晨4点半
很好的总结,学习了。谢谢分享
《JavaScript权威指南》笔记(四)

第四篇笔记的内容主要涉及:javascript中的各种语句。 1. switch语句: (1)其中的case表达式采用===匹配,而不是==做匹配 (2)习惯上将default标签放在switch主体的结尾,但实际上可以放在...

小微
2012/08/28
0
2
《JavaScript权威指南》笔记(二)

第二篇笔记的内容主要涉及:数据类型转换,函数、对象、数组的创建以及null与undefined的比较。 1. javascript中类型转换的方法: (1)数字-->字符串: number+" "; String(number); number...

小微
2012/08/28
0
7
javascript学习笔记之概要

总体以李炎恢老师的javascript视频为主,其视频简要说明了js的核心知识。 参考书籍:javascript权威指南。

风云海滩
2015/01/07
0
0
JavaScript语言精粹学习笔记(一)

《JavaScript语言精粹》相比《JavaScript权威指南》而言,是一本太薄的书了。然而也许正因为小而精,所以难有权威指南那样阅读起来浅显易懂却又醍醐灌顶般的感觉,语言精粹还是略微感觉有些艰...

小微
2012/12/27
0
0
如果想成为一名顶尖的前端,这份书单你一定要收藏!

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯IVWEB团队 发表于云+社区专栏 作者:link 2014年一月以来,自己接触web前端开发已经两年多了,记录一下自己前端学习路...

腾讯云加社区
09/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS 安装PHP5和PHP7

安装PHP5 下载解压二进制包 [root@test-a src]# cd /usr/local/src/[root@test-a src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2[root@test-a src]# tar jxvf php-5.6......

野雪球
今天
4
0
windows上类似dnsmasq的软件Dual DHCP DNS Server

官网地址:http://dhcp-dns-server.sourceforge.net/官网定向的下载地址:https://sourceforge.net/projects/dhcp-dns-server/files/ 设置参考地址:http://blog.51cto.com/zhukeqiang/18264......

xueyuse0012
今天
3
0
LinkedHashMap源码解析

前言 HashMap中的元素时无序的,也就是说遍历HashMap的时候,顺序和放入的顺序是不一样的。 如果需要有序的Map,就可以采用LinkedHashMap. LinkedHashMap通过维护一个包含所有元素的双向链表,...

grace_233
今天
4
0
初识flask

文档 0.10.1版本 http://www.pythondoc.com/flask/index.html 1.0.2版本 https://dormousehole.readthedocs.io/en/latest/ 安装flask $ pip3 install flaskCollecting flask Downloading......

yimingkeji
昨天
6
0
Akka系统《sixteen》译

Actor是一个封装状态(state)和行为(behavior)的对象,它们只通过交换消息通信(放入收件人邮箱的邮件)。从某种意义上说,Actor是最严格的面向对象编程形式,但它更适合将他们视为人:在与Act...

woshixin
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部