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来引用全局对象

  

  

  

《javascript权威指南》阅读笔记 1的更多相关文章

  1. C++ Primer 第四版阅读笔记

    阅读笔记 初始化 变量定义指定了变量的类型和标识符,也可以为对象提供初始值.定义时指定了初始值的对象被称为是 已初始化的.C++ 支持两种初始化变量的形式:复制初始化和 直接初始化.复制初始化语法用等 ...

  2. 《C#编程宝典:十年典藏版》阅读笔记(1)

    1.运行时错误,使用Checked块语句进行异常检查与抛出异常. 2.值类型使用线程堆栈保存数据,数据大小大概为1M左右,引用类型使用托管堆保存数据,可以无限分配空间,因为有一个GC垃圾回收机制存在, ...

  3. <C++Primer>第四版 阅读笔记 第四部分 “面向对象编程与泛型编程”

    继承和动态绑定与数据抽象一起成为面向对象编程的基础. 模板使我们能够编写独立于具体类型的泛型类和泛型函数. 第15章 面向对象编程 面向对象编程基于三个基本概念:数据抽象.继承和动态绑定.在C++中, ...

  4. C#高级编程第9版 阅读笔记(一)

    一.前言 C# 简洁.类型安全的面向对象的语言. .NET是一种在windows平台上编程的架构——一种API. C#是一种从头开始设计的用于.NET的语言,他可以利用.NET Framework及其 ...

  5. JavaScript 权威指南第6版 - [阅读笔记]

    JavaScript 基础   Page 13 (1)<script> 的属性:async,charset,defer='defer',language已废,src,type   (2)n ...

  6. <C++Primer>第四版 阅读笔记 第一部分 “基本语言”

    之前阅读时没有及时总结,现在慢慢补上. 第1章 快速入门 main 函数在很多方面都比较特别,其中最重要的是每个C++程序必须含有 main 函数,且 main 函数是(唯一)被操作系统显示调用的函数 ...

  7. <C++Primer>第四版 阅读笔记 第三部分 “类和数据抽象”

    类定义了数据成员和函数成员:数据成员用于存储与该类类型的对象相关联的状态:而函数成员则负责执行赋予数据意义的操作. 第12章 类 一个类可以包含若干公有的.私有的和受保护的部分:在public部分定义 ...

  8. 《JavaScript权威指南》第六版阅读笔记(二):JavaScript词法结构

    JavaScript使用Unicode字符集.ECMAScript3要求JS的实现必须支持Unicode 2.1及后续版本,ECMAScript 5要求JS的实现支持Unicode 3及后续版本. J ...

  9. C++ primer 中文第三版 阅读笔记 第八章

    一.寄存器对象: 函数中频繁被使用的变量可以加上register就可声明为寄存器对象.对于寄存器对象,假如能够放到寄存器中就会放到寄存器中,放不到的话就放到内存中.比如 register int  a ...

  10. 鸟哥的LINUX私房菜基础篇第三版 阅读笔记 四 档案的文件系统的压缩和打包

    1.压缩文件案的用途与技术     a.用途,简单来说,就是节约磁盘空间.如果从传输角度讲,占用宽带也会小很多(Apache就有自动压缩的功能,节省宽带资源,提升网站的输出能力)     b.压缩技术 ...

随机推荐

  1. 使用Promise规定来处理ajax请求的结果

    ajax()返回结果是成功的,调用done()中的回调函数: 失败则调用fail()中的回调函数; always()的回调函数不管成功是否都会调用: 可以是使用then()函数代替done()和fai ...

  2. Oracle中MERGE语句的使用

    Oracle在9i引入了merge命令, 通过这个merge你能够在一个SQL语句中对一个表同时执行inserts和updates操作. 当然是update还是insert是依据于你的指定的条件判断的 ...

  3. Asp.Net通过SignalR实现IM即时通讯

    前言:SignalR是一种针对H5中WebSocket的解决方案,可以实现在不支持H5的浏览器中实现IM 后端: step 1:通过NuGet安装SignalR step 2:新建一个类继承于Hub, ...

  4. js 事件小结

    1,事件对象   e || window.event //ie   2, 取鼠标点击坐标 带有滚动条的   var top = document.documentElement.scrollTop | ...

  5. ActionSupport.getText()方法 以及 js中:<s:text name="" />

    下面略述com.opensymphony.xwork2.ActionSupport.getText()方法 public String getText(String aTextName) 说明:Get ...

  6. PROCEDURE_监测系统_原始数据报表数据生成存储过程—求每天平均值插入多表视图

    create or replace procedure proc_generate_report(in_date in varchar2) is  v_retCode varchar2(20);  v ...

  7. 2015年阿里巴巴蚂蚁金服校招JAVA研发工程师内推电话面试

    没想到阿里校招如此之早,虽然早已进入复习备战状态,但还是感觉有些措手不及...找了个在蚂蚁金服做HR的同学帮忙了内推,然后在最近的几天匆匆忙忙地复习JAVA(之前都把精力放在了数据结构.算法等基础上了 ...

  8. 解决onethink导出word后出现名字乱码的情况

    这个问题让我纠结了好久最后终于在网上看到一篇文章讲解的还不错 http://www.oschina.net/question/142207_39393

  9. iOS开发多线程-多线程技术1

    一.基本概念 1.什么是进程 进程就是指在系统中正在运行的一个应用程序 每个应用之间是相互独立的 每个进程都运行在其专有的并且受保护的内存空间内. 2.什么是线程 一个进程想要执行程序,就必须需要一个 ...

  10. 微控制器(MCU)破解秘笈--背景知识

    2.1 硅芯片安全措施的演变 工业控制器的硬件安全措施与嵌入式系统同时开始发展.三十年前的系统是由分离的部件如CPU,ROM,RAM,I/O缓冲器,串口和其他通信与控制接口组成的.如图2-1所示: 图 ...