`
alanwu
  • 浏览: 200432 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

《javascript权威指南第五版》数据类型和值

阅读更多
黑色字体代表书上的东西(当然是我翻译出来的,可以翻译会有误)
蓝色字体代表我的观点
红色字体代表我的疑问

数据类型和值

三个原生数据类型:numbers,strings of text(strings)和Boolean truth values(booleans).还定义了两个独立的数据类型:null和undefined,他们都只有一个值。

java的null不是数据类型,所以如果程序遇到null基本上就等于束手无措,ruby用nil表示空,是个对象有一些基本操作,scala更进一步有继承Option的None和空列表Nil,可以将空演绎得更充分。

JavaScript支持组合的数据类型---object,一个ojbect表示值的集合,array也是一种特殊的object.

JavaScript还定义了特殊的object---function.function是可执行的object.

对于java或者C++来说function是一种对象或许非常奇怪,但在函数式编程function是理所当然的,function也是一等公民,可以独立存在。

JavaScript基本类型有:3.1. Numbers
JavaScript的Number就是浮点一种表示

3.2. String
String是Unicode字母,数字等等的序列,JavaScript用来表示文本。
String可以和Number互转,如:
Number转为String:
var n = 100;
var s = n + " bottles of beer on the wall.";


String转为Number:
var product = "21" * "2"; // product is the number 42.

很神奇,String居然可以自动识别出来转为Number.Java做不到,Scala可以定义隐式转换做到这一点。

3.3. Boolean值
只有两个:TRue和false

为什么是TRue呢?书写错了?

3.4. Functions函数
函数是可执行代码的片段。
可以像java一样定义:
function square(x) { return x*x; }
也可以用函数式的方式定义:
var square = function(x) { return x*x; }

Scala也可以用这种方式定义,可以把Function存在一个变量里。


3.5. Objects对象
对象是有命名值的集合,这些命名的值通常叫做属性或者字段。
假如一个对象image有命名为width和height的属性,可以:

image.width
image.height


上面说了array是一种对象,array访问属性的方式如:aArray[0],对象也可以,

image["width"]
image["height"]


创建一个对象可以用:
var point = new Object( );
point.x = 2.3;
point.y = -1.2;



也可以:
var point = { x:2.3, y:-1.2 };

对象可以嵌套对象

JavaScrip不像java或其他OO语言,JavaScript不是基于类(Class)的语言,所以它本身不支持Class。

3.6. Arrays数组
一个数组是数值的集合,和一个对象一样,只是每个值都自动有个number的名字,叫索引(index).可以通过中括号加索引访问数值。

创建数组:
var a = new Array( );
a[0] = 1.2;
a[1] = "JavaScript";
a[2] = true;
a[3] = { x:1, y:3 };


JavaScript的数组不是同质的,可以往里面放各种各样的东西。

也可以在new的时候就初始化
var a = new Array(1.2, "JavaScript", true, { x:1, y:3 });


同样JavaScript支持
var a = [1.2, "JavaScript", true, { x:1, y:3 }];


可能更多的人喜欢这种方式,比较直观而且少打几个字。
如果有空值可以留着,用都好隔开:
var sparseArray = [1,,,,5];

3.7. null空值
控制是特殊的值,当null用来做boolean的时候转成false,数值时是0,而字符串时是"null".

所以JavaScript没用NullPointException,但如果处理不当同样会出错。


3.8. undefined未定义
当使用定义了却没用赋值的变量,或者一个不存在的对象属性时,undefined就会返回回来。

3.11. Error Object错误对象
ECMAScript v3定义了表示错误的类。每个错误对象有message属性包含错误信息。


3.13. 基本型的包装对象

var s = "These are the times that try people's souls.";
var last_word = s.substring(s.lastIndexOf(" ")+1, s.length);
细心的人会问,既然sting是基本型,那么s为什么有方法呢?

对了,JavaScript提供了包装基本型的对象:Number, String和Boolean

JavaScript在两者之间可以灵活的转换

你也可以用下面的方式创建同样的东西
var s = "hello world";              // A primitive string value
var S = new String("Hello World");  // A String object
你用正常的方式区别不了s和S。

Java的基本型不能自动转换成对象。
Scala不需要这些,因为没用基本型。Scala还预定义了java基本型的隐式转换,可以给java的基本型包装上很多丰富的功能。


3.14. 对象-基本型转换 Object-to-Primitive Conversion
既然基本型可以转换成对象,那么对象也能转换成基本型,答案是valueOf。 JavaScript有自带的valueOf,如果你觉得不够可以自定义。如果只是一般的转换,用toString就够了。

3.15. 传值(By Value)还是传引用(by Reference)?
传值还是传引用是大多数语言所遇到的问题,像C有传指针。
JavaScript的基本规则是,number,boolean,string这几个基本型是传值的,而object是传引用的。

Scala还要传名(by name),还不能够深入理解。
分享到:
评论

相关推荐

    javascript权威指南第五版(英文原版)

    《JavaScript权威指南第五版》是JavaScript编程领域内一本广受赞誉的经典著作,通常被称为“犀牛书”。这本书的英文原版提供了对JavaScript语言最原始、最深入的理解,帮助读者掌握其核心概念,以及作者David ...

    Javascript 权威指南 第五版

    《JavaScript 权威指南》第五版是一本深受...通过阅读《JavaScript 权威指南》第五版,无论是初学者还是有经验的开发者,都可以深入理解和掌握JavaScript的核心概念和技术,为构建复杂的Web应用程序打下坚实的基础。

    javascript权威指南第五版(PDF)

    通过阅读《JavaScript权威指南》第五版,读者不仅能掌握JavaScript的基本语法,还能深入了解其高级特性和现代开发的最佳实践。无论是初学者还是经验丰富的开发者,都能从中受益匪浅,提升自己的JavaScript编程技能。

    javascript权威指南第五版(chm格式)

    《JavaScript权威指南第五版》是JavaScript编程领域的一本经典之作,深入浅出地阐述了JavaScript的核心概念和技术。这本书不仅适合初学者入门,也对有经验的开发者提供了宝贵的参考资料。CHM(Compiled Help Manual...

    JavaScript权威指南第五版源码

    JavaScript权威指南第五版的源码是一份极其宝贵的资源,它为深入理解和实践JavaScript语言提供了丰富的素材。这本书由David Flanagan撰写,是JavaScript开发者必备的经典参考书籍之一。源码的提供使得读者可以更直观...

    JavaScript权威指南(第5版)PDF版本下载.txt

    第五版于2016年发布,由David Flanagan编写,是一本全面介绍JavaScript语言特性的书籍。本书不仅适合初学者作为学习JavaScript的基础教材,也适合有一定经验的开发者用来深入了解这门语言。 ### 二、书籍内容概览 ...

    第五版javascript权威指南

    通过阅读《第五版JavaScript权威指南》,开发者不仅可以系统学习JavaScript语法,还能掌握实际开发中的最佳实践,提升对JavaScript语言的理解和运用能力。书中附带的源码可以帮助读者更直观地理解所学知识,并提供...

    javascript权威指南第五版

    《JavaScript权威指南第五版》是David Flanagan撰写的一本经典JavaScript编程书籍,由O'Reilly出版社出版。这本书全面深入地探讨了JavaScript语言的核心特性和实际应用,是学习和提升JavaScript技能的重要参考资料。...

    JavaScript 权威指南(第五版)源码

    JavaScript,作为一种广泛应用于Web开发的脚本语言,已经成为...通过对《JavaScript权威指南》第五版源码的学习和实践,开发者不仅可以巩固理论知识,还能提升解决实际问题的能力,为成为JavaScript高手奠定坚实基础。

    JavaScript权威指南(第五版)

    《JavaScript权威指南(第五版)》是一本深受程序员喜爱的经典著作,它全面深入地探讨了JavaScript这门广泛应用于Web开发的脚本语言。JavaScript作为Web程序设计的核心技术,它的掌握对于任何想要在互联网领域有所建树...

    javascript 权威指南第五版(含源码)

    《JavaScript 权威指南》第五版是一本深受程序员喜爱的经典之作,它在JavaScript的学习资源中占据了至高无上的地位。本书全面而深入地探讨了JavaScript的各个方面,是开发者掌握这门语言不可或缺的参考书。作者David...

    javascript 权威指南第五版

    《JavaScript权威指南第五版》是前端开发者不可或缺的参考书籍,它深入浅出地阐述了JavaScript这门编程语言的核心概念和机制。这本书不仅适合初学者,也适合已经有一定经验的开发者,帮助他们巩固基础,理解更高级的...

    JavaScript权威指南(第五版英文原版)

    ### JavaScript权威指南(第五版英文原版)关键知识点解析 #### 一、书籍基本信息与特点 **书名:**《JavaScript权威指南》第五版 **作者:**David Flanagan **出版社:**O'Reilly Media **出版日期:**2006年8...

    JavaScript权威指南第五版

    《JavaScript权威指南第五版》是JavaScript开发者不可或缺的经典教程之一,由David Flanagan撰写,被誉为JavaScript领域的“犀牛书”。此书全面深入地介绍了JavaScript语言,为程序员提供了详细且准确的语言参考。...

    JavaScript 权威指南第五版

    《JavaScript权威指南第五版》是一本深受欢迎的编程书籍,专为那些希望深入理解JavaScript语言的开发者而设计。这本书详细地介绍了JavaScript的核心语法,包括对象、继承机制等关键概念,同时涵盖了客户端和服务器端...

    JavaScript权威指南(第五版)-chm

    《JavaScript权威指南(第五版)》是一本深受程序员喜爱的经典著作,它全面深入地探讨了JavaScript这门重要的编程语言。JavaScript作为Web开发的核心技术之一,不仅用于网页交互,还广泛应用于服务器端开发、移动...

    JavaScript权威指南第五版配书源码

    《JavaScript权威指南第五版》是一本深受欢迎的编程书籍,其配套源码为读者提供了实践和深入理解JavaScript语言的重要资源。这份源码包含了书中各种示例、练习和实验,旨在帮助读者通过动手实践来巩固理论知识,提升...

Global site tag (gtag.js) - Google Analytics