第四章 变量:
1 javascript是非类型的语言。
2 如果不显示地声明一个变量,javascript将隐式地声明它。
3 var 用来声明变量,并且var声明的变量是永久性的,也就是说,用delete删除这些变量将会引发错误。
4 var语句多次声明同一个变量是合法的,如果重复声明,相当于一个赋值语句而已。
5如果尝试读一个未声明的变量的值,js会生成一个错误。如果尝试给一个未用var声明的变量赋值,js会隐式声明该变量。但是要注意,隐式声明的变量总是被创建为全局变量。(本人注:相当于解释器遇到一个变量,但是在scope chain中一直查找,都未找到定义,那么在最上层,也就是全局那层,隐式声明它)。
6 function f()
{
alert(scope);
var scope = ‘local’;
alert(scope);
}//输出为undefined
这个例子说明,将所有变量声明集中起来防止在函数开头是一个好的编程习惯。
7 基本类型:数值,布尔,null,undefined,
引用类型:对象,数组,函数。
基本类型:在内存中大小固定,比如数值,8个字节,布尔,1位就够了。
引用类型:数组可以包含任意多个元素,函数可以包含任意数量的代码。变量存储的是值的引用。
字符串:字符串是一个特例,因为它具有可变的大小。只复制对字符串的引用,而不是字符串的内容。另一方面,字符串在许多方面都和基本类型的表现相似。字符串是不可变的。
8 js使用垃圾收集
9 全剧对象:当js的解释器开始运行时,它首先要做的事情之一就是在执行任何js代码之前,创建一个全局对象(global object)。这个对象的属性就是js程序的全局变量。【注:这个全局对象在客户端js中值的就是window】
10 局部对象:调用对象(call object)
局部变量是调用对象的属性。
11 js的执行环境:
Js解释器在每次开始执行一个函数时,都会为那个函数创建一个执行环境(execution context)。显然,一个执行环境就是所有js代码段执行时所在的环境。这个环境的一个重要的部分就是定义变量的对象。
12 深入理解变量作用域:
每个js执行环境都有一个和它关联在一起的作用域链(scope chain)。这个作用域链是一个对象列表或对象链。并且是一个类似堆栈式的结构。当前函数对象在链的最上层。查找变量时,首先查找的是最上层,如果没有变量的定义继续往下查找,如果都未找到,那么变量是undefined。
第三章 数据类型
1 基本类型:数字,文本,布尔
2 复合数据类型: 对象。
•分为两种:
1 无序集合, 2 有序集合(数组array)。虽然本质上说,对象和数组是同一种数据类型,但是它们的行为却极为不同,所以本书通常将它们看作两种不同的类型。
•另一种特殊的对象是函数(function)。函数是具有可执行代码的对象。
•js语言的核心还定义了其他一些专用的对象。这些对象表示的不是新的数据类型,而是对象的新的类(class)。比如Date类定义的是表示日期的对象,RegExp类定义的是表示正则表达式的对象,Error类定义的是表示js程序发生语法错误和运行时错误的对象。
3 数字(number)
Js不区分整数数值和浮点型数值。在js中所有的数字都是由浮点型表示的。Js采用IEEE745标准定义64位浮点格式。
当一个数字直接出现在js程序中是,我们成它为数值直接量(numeric literal)
十进制,十六进制:0x或0X开头 0~9 a(A)~f(F),八进制:0开头【注:某些js实现不支持八进制直接量】
4 浮点直接量:支持科学计数法
5 特殊的数值:
无穷大Infinity,负无穷大-Infinity
当一个算术运算产生了未定义的结果或错误时,就会返回另一个特殊的js数值。在这种情况下,结果是一个非数字的特殊值,输出为NaN。这个非数值和任何数值都不相等,包括它自己,所以需要一个专门的函数isNaN()来检测这个值。
Number.MAX_VALUE,Number.MIN_VALUE
6 字符串直接量的转移序列:
\t,\r,\n,\0 【NUL字符\u000】,\b,\”,\’,\\,\uXXX【Unicode字符】
7 函数
8 null
9 undefined
10 自动数据类型转换
11 基本数据类型的包装对象
typeof(“abc”) 结果是string,js不仅支持数字,字符串和布尔值,还支持Number,String和Boolean类,这些类是对基本数据类型的包装。这些包装(wrapper)不仅具有和基本类型一样的值,还定义了运算数据的属性和方法。
【注:eval()方法对待字符串值和String对象是不同的,如果无意地传递给它一个String对象,而不是一个基本的字符串值,它可能无法像预期的那样工作。】
第二章 词法结构
1 字符集
1 Js程序是用Unicode字符集编写。7位的ASCII和ISO Latin -1 只适用于英语和西欧语言。并且是Unicode的子集。Js中的每个字符都是有两个字节表示的。
2 大小写敏感
3 js会忽略程序记号之间的空格,制表符,换行符。
4 可选的分号
5 如果用换行符打断了一行,并且这行是一个完整的语句,那么js会自动插入一个分号。
例如:
return
true;
js会认为是return;最好写成return true;
6直接量:literal
7 标识符:第一个字符必须是字母、下划线。或美元符号。
8保留字:js关键字,ECMA扩展保留的关键字
如果用这些保留字用作变量名或函数,会得到一个错误。
分享到:
相关推荐
《JavaScript犀牛书》是JavaScript编程领域的一本经典著作,被广大开发者誉为"骨灰级"的学习资料,尤其适合初学者入门。这本书全面而深入地介绍了JavaScript语言的核心概念、语法以及实际应用,旨在帮助读者建立起...
《JavaScript权威指南》是JavaScript编程领域的一本经典之作,由著名技术作家David Flanagan撰写,被誉为"JavaScript犀牛书"。这本书深入浅出地讲解了JavaScript语言的核心概念、语法特性和高级特性,对于想要全面...
JavaScript权威指南,最著名的javaScript参考用书。被大家亲切的成为犀牛书,是O'Reilly出版集团动物系列书的一分子。
书中较全面地对 JavaScript 的各种函数以及特性作了介绍,而后面占了全书超过一半内容的 JavaScript 核心参考、客户端 JavaScript 参考、DOM 参考,无疑是编写 JavaScript 时最有力的参考手册(当然,在线的除外)。...
标题中的“USB合辑_usb_犀牛usb接口_犀牛_犀牛3d模型_犀牛建模usb口”指的是一个专门针对USB接口设计的3D建模资源集合,其中特别提到了“犀牛USB接口”和“犀牛3D模型”。这个合辑可能包含了多个与USB接口相关的3D...
犀牛(Rhino)是美国Robert McNeel & Associates公司开发的一款基于NURBS(非均匀有理B样条)的高级三维建模软件,广泛应用于工业设计、建筑设计、船舶设计、珠宝设计、汽车设计、CAD/CAM、快速成型、动画、电影等多...
JavaScript权威指南(第六版)犀牛书,淘宝前端团队翻译,中文版
【犀牛中文语言包】是针对著名的3D建模软件Rhino的一款重要组件,它使得中国用户能够更方便地使用这款强大的工具。Rhino,全称为Rhinoceros 3D,是由McNeel公司开发的专业3D造型软件,广泛应用于工业设计、建筑设计...
Rhinoceros犀牛6.0注册机 通用所有犀牛6.x Rhinoceros犀牛6.0注册机 通用所有犀牛6.x
犀牛JavaScript(第5版) JavaScript概述 语法结构 数据类型和值 变量 表达式和运算符 语句 对象和数组 函数 构造函数和原型 模块和名字空间 使用正则表达式的模式匹配 脚本化java 客户端 JavaScript
犀牛,铝板,标识,展开插件
使用犀牛软件及Grasshopper插件实现结构快速建模经验总结
犀牛 中文补丁 文件
3dm格式犀牛模型
犀牛高亮选中对象插件 犀牛高亮选中对象插件 犀牛高亮选中对象插件 犀牛高亮选中对象插件 犀牛高亮选中对象插件 犀牛高亮选中对象插件 犀牛高亮选中对象插件 犀牛高亮选中对象插件 犀牛高亮选中对象插件 犀牛高亮...
犀牛建模基础教程
《犀牛JavaScript第5版》是一本深受程序员喜爱的JavaScript编程指南,对于深入理解和掌握JavaScript语言具有极高的价值。本书全面覆盖了JavaScript的核心概念、语法结构以及实际应用,旨在帮助读者构建坚实的...
自己写的犀牛导出su脚本,简单易用,导出su模型的模块各自成组,各自拥有相对独立的原点,并自动整理乱线。解决了犀牛导出su的破面、原点过远问题。 具体使用方法: 1.在犀牛指令栏输入:RunPythonScript 2.选择...
犀牛6.19和犀牛7最新安装包, Rhino是美国Robert McNeel & Assoc开发的PC上...不过不要小瞧它,它包含了所有的NURBS建模功能,用它建模感觉非常流畅,所以大家经常用它来建模,然后导出高精度模型给其他三维软件使用。