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

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

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

1. javascript区分大小写,xhtml也区分大小写,可是html不区分大小写。(因此说html不够严格嘛~) java

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

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

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

这几个知识点通常是按照字母顺序给出,但我以为有时候不容易记住,因此按它们的功能进行了小归类: this

(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扩展保留的关键字 spa

  • 基本数据类型: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预约义的全局变量名或函数名 .net

  • 数据类型: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()不属于上面的三类。 debug

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权威指南》笔记(二)

相关文章
相关标签/搜索