《javascript权威指南》阅读笔记 1

3.1-3.5
3.1 数字
3.1首先声明了在JS中的数字是不区分整数值和浮点数值的。其次给出了js浮点类型表示的范围:最大值是±1.7976931348623157×10^308,最小值±5×10^-324,以及其整数范围:-2×10^53到2×10^53,包含边界值。(不知道会不会用到,姑且记下来)。
  一个数字直接出现在js程序中,称其为数字直接量。
  3.1.1
对于整数型直接量,JS支持是十进制与十六进制的,十六进制以“0x”或者“0X”为前缀,比如“0xff”。但是JS的ECMAScript标准并不支持八进制,但是某些版本的JS支持八进制直接量以数字0开始,其后跟随一个0-7之间的数字组成的序列(如0377)。所以日常编程中不提倡使用以数字0为前缀的整形直接量。
  3.1.2
  对于浮点型直接量,JS中的书写习惯与日常一样,整数部分+小数点+小数部分。特别多js支持指数标记法(科学计数法),如6.02e23(6.02×10^23)或者6.04E-22
  3.1.3
  在js的算数运算中,上溢(overflow)用Infinity(无穷大)表示,下溢(underflow)则会返回0(负数下溢时会返回-0)。当一个非零的数被零整出的时候怎会返回Infinity或者-Infinity。特殊的当0被0整除的时候则会返回一个NaN,表示非数字值;当无穷大除以无穷大,给负数开平方,算数运算符(+-×/%)与任何不是数字或者无法转换为数字的操作数一起运算的时候都会返回NaN。JS预定义了全集变量Infinity和NaN,在ECMAScript 5以后,这两个变量都是只读的。特别的NaN与自身是不相等的,即NaN!=NaN。-0==0.
  3.1.4
另外,因为计算机采用的是二进制计算,与日常生活中的十进制计算存在误差,在精度要求很高的情况下会出现一些偏差,所以在能使用整数的情况下尽量不要使用小数。
  3.1.5
Js提供Date()函数操作日期。

  3.2文本

  文本概念有待理解,时间关系不做笔记

  3.2.1

  JS中的字符串直接量用双引号或者单引号括起来,单引号的界定可以包含双引号,同理双引号的界定可以包含单引号。ECMAScript 5中支持单个字符串直接量多行书写,但是每行必须以反斜线(\)结束,如:

          “one\

          long\

          line"

  当JS与HTML代码夹杂在一起的时候,提倡使用各自独立的引号风格,比如JS用双引号HTML用单引号。

  3.2.2

  js提供一些特殊的转义字符,比如\‘单引号 \"双引号。

  3.2.3

  JS提供很多字符串操作功能,如字符串拼接、length、substring等用法。

  3.2.4

  JS支持正则表达式(RegExp),知识点有待深入

  3.3布尔值

  在JS中,undefined、null、0、-0、NaN、""被称为“假值”,这六个值会被转换成false;而所有其他值被称为“真值”,包括所有的对象(数组),都会被转换成true。经常地,在使用if(o){}语句的时候,只要o不是false或者任意“假值”,if中的语句就可以执行。

  布尔值包含toString()方法,可以转换成"true"或者“false”字符串。

  JS也的布尔值也使用&&、||、! 三个逻辑操作符。

  3.4 null与undefined

  null是JS的一个关键字,是一个表示“空值”的特殊值。undefined则是系统预定义的全局变量,它的值就是“未定义”。

  通常情况下,可以理解undefined为一个系统级的、出乎意料的或者类似于错误的 值的空缺;null则是一个程序级的、正常的和意料之中的 值的空缺。如果在编程中需要使用,最佳选择是null。个人理解可以用高中数学的集合知识来理解null跟undefined的区别:null类似于空集,表示没有任何元素的集合;undefined则是一个根本不存在的集合。

  另外的,虽然null与undefined是不相同的,但是他们都表示“值的空缺”,很多情况下可以互换。“==”运算符认为他们是相等的,如果要区分他们则需要使用“===”运算符。

null和undefined都不含有任何属性和方法,使用“.”和"[]"存取他们的成员或方法的时候都会产生一个类型错误。

  以下几种情况会得到一个undefined:

  1、查询一个根本不存在的对象属性或者数组元素

  2、函数没有给返回值,默认返回undefined

  3、引用没有提供实参的函数形参的值(?)

  undefined在ECMAScript 5中为只读的。使用typeof来获取undefined的类型会返回“undefined”,表明了这个值是这个类型的唯一成员

  3.5全局对象(global object)

  全局对象的属性是全局定义的符号,JavaScript程序可以直接使用。

  在代码的最顶级——不在函数内的js代码中——可以使用JS的关键字this来引用全局对象

   

  

  

posted @ 2015-08-25 00:32  我是车子啊  阅读(193)  评论(0编辑  收藏  举报