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

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. 客户端持久化解决方案: Web SQL

    客户端持久化解决方案: Web SQL Web SQL 提供了一组使用 SQL 操作客户端数据库的 APIs, 不是 HTML5 规范的一部分,是一个独立的规范. 核心方法 openDatabase: ...

  2. xlslib库使用简记

    xlslib库使用简记 1 前言 最近需要使用C++结合xlslib库来生成Excel文件,但发现这个库的文档还真难找,找来找去发现唯一的线索是有一个test/目录里面的几个例子而已. 想到以后要不断 ...

  3. poj 1007 纯水题 排序

    #include<stdio.h> #include<string.h> #include<algorithm> #include<stdlib.h> ...

  4. 网易云课堂_程序设计入门-C语言_第三周:循环_2数字特征值

    2 数字特征值(5分) 题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作 ...

  5. JavaScript单线程

    首先浏览器的js引擎是单线程的,执行一个耗时操作必定阻碍线程后续代码的执行(比如等待网络请求的响应).一些语言采用了开一个子线程并把耗时操作放到子线程去执行的办法解决了这个问题.js引擎本身不支持多线 ...

  6. wx

    wx The classes in this module are the most commonly used classes for wxPython, which is why they hav ...

  7. Risk(最短路)

    Risk Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2915   Accepted: 1352 Description ...

  8. CSS3中新增的内容

    (整理中······) 一.选择器 新增的伪类 1.p:first-of-type   选择属于其父元素的首个 <p> 元素的每个 <p> 元素. 2.p:last-of-ty ...

  9. BZOJ 1087 互不侵犯king

    Description 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. Input 只有一行,包 ...

  10. C++中将int转变成string和string转变成int

    int to string #include<iostream> #include<string> using namespace std; int main() { stri ...