开始变得有意思起来了,然而第三章还是以基础知识了解的角度阐释相关的概念,并没有深入到结合代码以及要实现的功能讲用法和原理的程度。

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权威指南笔记的更多相关文章

  1. 5.类型、值和变量-JavaScript权威指南笔记

    开始变得有意思起来了,然而第三章还是以基础知识了解的角度阐释相关的概念,并没有深入到结合代码以及要实现的功能讲用法和原理的程度. 1.概论. value:程序的运行是对值的操作. type:能够表示并 ...

  2. javascript权威指南笔记--javascript语言核心(二)

    1.函数作用域:在函数内声明的所有变量在函数体内始终是可见的.这意味着在变量声明之前甚至已经可用. *“声明提前”:javascript函数里声明的所有变量(但不涉及赋值)都被提前至函数的顶部. fu ...

  3. javascript权威指南笔记

    最近每天工作之余看下js的细节部分,时间不是很多,所以看的进度也不会太快,写个博客监督自己每天都看下. 以前不知道的细节或者以前知道但是没注意过的地方都会记录下来,所以适合有一定基础的,不适合零基础新 ...

  4. javascript权威指南笔记--javascript语言核心(一)

    1.javascript的数据类型分为两类:原始类型和对象类型. 原始类型包括字符串.数字.布尔值.null.undefined. 对象是属性的集合,每个对象都由“名/值”对构成.数组和函数是特殊的对 ...

  5. javascript权威指南笔记--javascript语言核心(四)

    对象: 通过引用(而非值)来操作对象: var obj = {"x":1,"y":2}; var copyObj = obj; copyObj.x = 5; c ...

  6. javascript权威指南笔记--javascript语言核心(三)

    1.var用来声明一个或多个变量.全局变量是全局对象的属性,它无法通过delete删除. 如果var语句中的变量没有指定初始化表达式,那么这个变量的初始值为undefined. 变量声明语句会被提前到 ...

  7. 1.语言概述-JavaScript权威指南笔记

    上周三的时候交给老板目前的项目第一个迭代回顾会的总结.原本是以综述性的表述方式写的,交给他之后表示程序员不要长篇大论.总结要分为优点缺点期望等等块,每块列出条目,简明扼要的表达出来.这里也用这种风格. ...

  8. [JavaScript权威指南 [笔记]

    对象的比较均是引用的比较.(不可变的原始值和可变的对象引用)this返回调用这个方法的对象通过x!==x来判断x是否为NaNvar max = max_width || preferences.max ...

  9. javascript权威指南笔记[1-5]

    1.javaScript的数据类型分为两类:原始类型和对象类型: 2.javaScript中除了数字,字符串,布尔值,null,undefined之外就是对象了: 3.对象(object)是属性(pr ...

随机推荐

  1. ApiDemos示例学习(1)——ApiDemos示例的导入

    ---恢复内容开始--- 今天准备开始写这个ApiDemos示例的学习日记了,放在网上以监督自己! 首先是导入该示例.如果我们在配置Android开发环境是,利用Android SDK 安装包中的SD ...

  2. 取PE文件的引入表和导出表

    直接上代码(这里列出C++和Delphi的代码),Delphi代码中包含导入及导出文件和函数列表,PE结构可参阅资料,很多很详细,需要注意的是,本例中是映射到内存,不是通过PE装载器装入的,所以对于节 ...

  3. Linux进程间通信——使用消息队列

    下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处.有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信——使用命名管道   一.什么是消息队列 消息队列提 ...

  4. ckeditor编辑器在java项目中配置

    一.基本使用: 1.所需文件架包 A. Ckeditor基本文件包,比如:ckeditor_3.6.2.zip 下载地址:http://ckeditor.com/download 2.配置使用 A.将 ...

  5. poj1207

    The 3n + 1 problem Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 50513   Accepted: 15 ...

  6. git使用三把斧

    git status                                           -查看哪些更改 git add file1 file2                     ...

  7. startActivityForResult不返回结果

    startActivityForResult不返回结果,请检查AndroidManifest中的描写叙述,是否对该Activity设置了:launchMode="singleTask&quo ...

  8. _00023 Kafka 奇怪的操作_001它们的定义Encoder达到Class数据传输水平和决心

    博文作者:妳那伊抹微笑 博客地址:http://blog.csdn.net/u012185296 博文标题:_00023 Kafka 诡异操作_001自己定义Encoder实现Class级别的数据传送 ...

  9. C#语言小结

    数据类型--变量与常量--运算符与表达式--语句(if,for)--数组--函数--结构体 一.数据类型:(一)内建类型整型(int short long byte uint ushort ulong ...

  10. 关于 css padding 的使用 padding会将使用该属性的元素撑开

    .right_img_box{ width:300px; height:250px; border:1px solid #c9c9c9; margin-bottom:15px; background: ...