《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来引用全局对象
《javascript权威指南》阅读笔记 1的更多相关文章
- C++ Primer 第四版阅读笔记
阅读笔记 初始化 变量定义指定了变量的类型和标识符,也可以为对象提供初始值.定义时指定了初始值的对象被称为是 已初始化的.C++ 支持两种初始化变量的形式:复制初始化和 直接初始化.复制初始化语法用等 ...
- 《C#编程宝典:十年典藏版》阅读笔记(1)
1.运行时错误,使用Checked块语句进行异常检查与抛出异常. 2.值类型使用线程堆栈保存数据,数据大小大概为1M左右,引用类型使用托管堆保存数据,可以无限分配空间,因为有一个GC垃圾回收机制存在, ...
- <C++Primer>第四版 阅读笔记 第四部分 “面向对象编程与泛型编程”
继承和动态绑定与数据抽象一起成为面向对象编程的基础. 模板使我们能够编写独立于具体类型的泛型类和泛型函数. 第15章 面向对象编程 面向对象编程基于三个基本概念:数据抽象.继承和动态绑定.在C++中, ...
- C#高级编程第9版 阅读笔记(一)
一.前言 C# 简洁.类型安全的面向对象的语言. .NET是一种在windows平台上编程的架构——一种API. C#是一种从头开始设计的用于.NET的语言,他可以利用.NET Framework及其 ...
- JavaScript 权威指南第6版 - [阅读笔记]
JavaScript 基础 Page 13 (1)<script> 的属性:async,charset,defer='defer',language已废,src,type (2)n ...
- <C++Primer>第四版 阅读笔记 第一部分 “基本语言”
之前阅读时没有及时总结,现在慢慢补上. 第1章 快速入门 main 函数在很多方面都比较特别,其中最重要的是每个C++程序必须含有 main 函数,且 main 函数是(唯一)被操作系统显示调用的函数 ...
- <C++Primer>第四版 阅读笔记 第三部分 “类和数据抽象”
类定义了数据成员和函数成员:数据成员用于存储与该类类型的对象相关联的状态:而函数成员则负责执行赋予数据意义的操作. 第12章 类 一个类可以包含若干公有的.私有的和受保护的部分:在public部分定义 ...
- 《JavaScript权威指南》第六版阅读笔记(二):JavaScript词法结构
JavaScript使用Unicode字符集.ECMAScript3要求JS的实现必须支持Unicode 2.1及后续版本,ECMAScript 5要求JS的实现支持Unicode 3及后续版本. J ...
- C++ primer 中文第三版 阅读笔记 第八章
一.寄存器对象: 函数中频繁被使用的变量可以加上register就可声明为寄存器对象.对于寄存器对象,假如能够放到寄存器中就会放到寄存器中,放不到的话就放到内存中.比如 register int a ...
- 鸟哥的LINUX私房菜基础篇第三版 阅读笔记 四 档案的文件系统的压缩和打包
1.压缩文件案的用途与技术 a.用途,简单来说,就是节约磁盘空间.如果从传输角度讲,占用宽带也会小很多(Apache就有自动压缩的功能,节省宽带资源,提升网站的输出能力) b.压缩技术 ...
随机推荐
- kinect
1.学习资料 http://blog.csdn.net/dustpg/article/details/37982311 https://github.com/mdkus/kinect-mssdk-op ...
- java中的IO流读取文件
1 InputStream类和OutputStream类 InputStream.read()方法从文件中读取一个字节(0-255),然后将此字节转换成对应的整数返回.假设一个文件的编码为utf-8编 ...
- js 事件小结
1,事件对象 e || window.event //ie 2, 取鼠标点击坐标 带有滚动条的 var top = document.documentElement.scrollTop | ...
- 一级域名301重定向到www二级域名
301重定向有利于百度的搜索 例如一个域名 www.test.com如果不做设置会产生4个网址, (1)test.com(2)www.test.com(3)test.com/default.html( ...
- haproxy之负载均衡算法
backend blance 算法 动态hash的特点 服务器运行时就可进行权重调整,即只需要重新载入配置文件即可,不需要重新启动haproxy 支持慢速启动,即重新恢复的后端 ...
- HDU 4939 Stupid Tower Defense
dp:枚举red,dp前i 个塔中有j 个蓝塔的最大伤害. 机智的地方:dp前i 个塔的时候可以同时处理n-i 个红塔,这样就少了个循环...(枚举红塔的循环) #include <iostre ...
- [TYVJ] P1006 ISBN
ISBN 背景 Background NOIP2008年普及组第一题 描述 Description 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位 ...
- Qt中实现启动画面(延时过程中要加上app.processEvents())
纵所周之,当一个程序的启动比较耗时的时候,为了不让用户枯燥的等待或者是误以为程序运行异常了,所以我们都会在启动比较耗时的程序中加上启动界面 ,例如office软件等等. 在Qt中实现启动界面,主要就是 ...
- C#操作XML文档(XmlDocument、XmlNode、XmlAttribute、SelectSingleNode、SelectNodes、XmlNodeList)
XML文档是一种通用的文档,这种文档既可以用.config作为后缀也可以用.xml作为后缀.XML文档主要由元素节点和节点的属性共同构成的.它有且仅有一个根节点,其他的节点全部都是根节点的子节点或者子 ...
- .net 反编译利器 dnspy
Binaries Latest release: https://github.com/0xd4d/dnSpy/releases Latest build (possibly unstable): h ...