3.类型、值和变量-JavaScript权威指南笔记
开始变得有意思起来了,然而第三章还是以基础知识了解的角度阐释相关的概念,并没有深入到结合代码以及要实现的功能讲用法和原理的程度。
1.概论。
value:程序的运行是对值的操作。
type:能够表示并操作的值,它们的类型称作数据类型。编程语言的基本特性是能支持多种数据类型。
variable:变量是某个值的符号名称,通过名称获得对该值的引用。
JavaScript的数据类型分为:原始类型-primitive type;对象类型-object type。
JavaScript解释器可以自动对内存进行垃圾回收(garbage collection):程序可以按需创建对象,对象的销毁和内存回收由解释器负责,当不再有任何引用指向某个对象时,解释器会自动回收它所占用的内存资源。这一点在做分页用到out _count这个变量的时候有体会的(变量的生命周期)。
JavaScript的变量是无类型的(untyped),使用var关键字声明(declare)变量。
2.数字
JavaScript中所有的数字都用64位浮点型表示(IEEE754标准),而整数实际操作是基于32为的整数。
出现在JavaScript程序中的数字成为数字直接量。值得注意的是,负数是经过正数的运算得到的。添加的负号是一元取反运算符,负号不是数字直接量的组成。
八进制直接量以0开头,有些地方可能不支持八进制解析,十六进制以0x开头,十进制直接写就是了不要带0做前缀,浮点型直接量也是直接写。(.2就是0.2)
数的算术运算发生overflow、underflow、被零除的时候不报错,相应的返回正负无穷大infinity,下溢是结果趋零的情况,直接返正负0,被零除返回正负无穷大,0除0才无意义。NaN表示not-a-number,非数字的意思,也是一个值,和任何值(包括自身)都不相等。
几个有意思的点:x != x这句话仅在x为NaN的时候为真,所以可以用这句话判断值是否为NaN;负零值=正零值,符号在做除法时体现为±infinity。
之前说过数用浮点型表示,写成十进制的小数都是近似数,也就会有0.3-0.2 !=0.2-0.1。所以写条件判断等等的时候注意一下舍入误差,当然整数不会有这种问题。
Math对象和Date()构造函数的用法,有需求的时候自行参考API。
3.文本
字符串,string,每个字符来自Unicode字符集,每个长16bits,2bytes。字符串的所以从零开始,单个的字符是长度为1的字符串。
值得注意的是,JavaScript中所有对于字符串的操作基于16位值进行,不针对单个字符。
字符串直接量,单引号或双引号括起来的字符序列,到这里终于知道直接量是个什么概念了。。。空字符串""包含0个字符,非null。
长字符串不要换行,ECMAScript3不支持,5的话可以在行末用\连下一行。HTML中也是单双引号都可以==。转义符你懂的,不多说。
同时,在JavaScript中,字符串出现一次后,它的值是固定不变的,做操作后变化的结果将是新的字符串,原字符串还是原值。
正则表达式:regular expression。这章只需要知道这么多就好。
4.布尔值
这里的东西很常规了。那么对于弱类型的JavaScript有一些特别的地方。
undefined、null、±0、NaN、""(空字符串)可以被转成布尔值的false,其余所有值会被转为true。
对于假值的区分,需要用到!==或===做显式比较。null == undefined为真,null === undefined为假。
5.null和undefined
null是它自有类型的唯一成员,是关键字;undefined是预定义的全局变量,它的值就是未定义,只读属性,非关键字。
6.全局对象 global object。
这里其实跟作用域有点关系。全局对象反正就是可以直接用的东西,JavaScript解释器启动,或者浏览器加载新页面时,将创建一个新的全局对象并给它一组定义的初始属性:全局属性undefined等、全局函数isNaN()等、构造函数Date()等、全局对象Math等。
7.总结
还是在基本概念阶段,新的东西(只区别于Java和C#的东西)还是有很多的。
今天对于JS的学习就到这里。
3.类型、值和变量-JavaScript权威指南笔记的更多相关文章
- 5.类型、值和变量-JavaScript权威指南笔记
开始变得有意思起来了,然而第三章还是以基础知识了解的角度阐释相关的概念,并没有深入到结合代码以及要实现的功能讲用法和原理的程度. 1.概论. value:程序的运行是对值的操作. type:能够表示并 ...
- javascript权威指南笔记--javascript语言核心(二)
1.函数作用域:在函数内声明的所有变量在函数体内始终是可见的.这意味着在变量声明之前甚至已经可用. *“声明提前”:javascript函数里声明的所有变量(但不涉及赋值)都被提前至函数的顶部. fu ...
- javascript权威指南笔记
最近每天工作之余看下js的细节部分,时间不是很多,所以看的进度也不会太快,写个博客监督自己每天都看下. 以前不知道的细节或者以前知道但是没注意过的地方都会记录下来,所以适合有一定基础的,不适合零基础新 ...
- javascript权威指南笔记--javascript语言核心(一)
1.javascript的数据类型分为两类:原始类型和对象类型. 原始类型包括字符串.数字.布尔值.null.undefined. 对象是属性的集合,每个对象都由“名/值”对构成.数组和函数是特殊的对 ...
- javascript权威指南笔记--javascript语言核心(四)
对象: 通过引用(而非值)来操作对象: var obj = {"x":1,"y":2}; var copyObj = obj; copyObj.x = 5; c ...
- javascript权威指南笔记--javascript语言核心(三)
1.var用来声明一个或多个变量.全局变量是全局对象的属性,它无法通过delete删除. 如果var语句中的变量没有指定初始化表达式,那么这个变量的初始值为undefined. 变量声明语句会被提前到 ...
- 1.语言概述-JavaScript权威指南笔记
上周三的时候交给老板目前的项目第一个迭代回顾会的总结.原本是以综述性的表述方式写的,交给他之后表示程序员不要长篇大论.总结要分为优点缺点期望等等块,每块列出条目,简明扼要的表达出来.这里也用这种风格. ...
- [JavaScript权威指南 [笔记]
对象的比较均是引用的比较.(不可变的原始值和可变的对象引用)this返回调用这个方法的对象通过x!==x来判断x是否为NaNvar max = max_width || preferences.max ...
- javascript权威指南笔记[1-5]
1.javaScript的数据类型分为两类:原始类型和对象类型: 2.javaScript中除了数字,字符串,布尔值,null,undefined之外就是对象了: 3.对象(object)是属性(pr ...
随机推荐
- PTF在PET上印刷線路的注意事項
PTF: Polymer Thick Film (聚合厚模),維基的解釋 PET: Polyethylene terephthalate (聚乙烯對苯二甲酸酯),維基的解釋 就如同大家所知道的,相較於 ...
- Qt新建线程的方法(四种办法,很详细,有截图)
看了不少Qt线程的东西,下面总结一下Qt新建一个线程的方法. 一.继承QThread 继承QThread,这应该是最常用的方法了.我们可以通过重写虚函数void QThread::run ()实现我们 ...
- ajax缺点以及解决办法
1.缺少一个没有标准之争.没有back和history的浏览器 Ajax取消了back按钮,即对浏览器后退机制的破坏.后退按钮是一个标准的web站点的重要功能,但是它没法和js进行很好的合作,这 ...
- Android手机自带内部存储路径的获取 (转)
转自:http://my.oschina.net/liucundong/blog/288183 我有一台中兴的Android手机,型号是 ZTE U930HD,手机没有插入外置SD卡(也就是Micro ...
- skiing(搜索+记忆化搜索)
skiing 时间限制:3000 ms | 内存限制:65535 KB 难度:5 描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当 ...
- POJ 3318 - Matrix Multiplication 第一次用随机化解决问题...
随机化还是很厉害的...印象最深的是以前手写快排~~一般加个随机化会使耗时不受输入数据的..时间更加稳定 这个题是人品题了...开始交了好多遍都过不了..多交几次终于过了... Program: #i ...
- Objective-C 内存管理之 _ARC
内存管理之 ARC 和 自己主动释放池 一.ARC 中的变量全部权修饰符 变量修饰符,主要用来标识对象的生命周期.在手动内存管理方式中没有这些概念. ARC 环境下变量全部权修饰符主要有以下几个: _ ...
- js复制button在ie下的解决方式
源代码例如以下: <input class="width200" maxlength="32" type="text" id=&quo ...
- 【转载】HTML和XML的区别
本文源地址 http://blog.163.com/txl129_2006@126/blog/static/1851087820103218453645/ 有改动. 什么是HTML HTML的全拼是H ...
- JAVA 可视化分析工具 第12节
JAVA 可视化分析工具 第12节 经过前几章对堆内存以及垃圾收集机制的学习,相信小伙伴们已经建立了一套比较完整的理论体系!那么这章我们就根据已有的理论知识,通过可视化工具来实践一番. 我们今天要讲 ...