Javascript核心读书有感之类型、值和变量

计算机程序的运行需要对值(value)比如数字3.14或者文本"hello world"进行操作,在编程语言中,能够表示并操作的值的类型叫做数据类型(type),编程语言最基本的特性就是主持多种数据类型。当程序需要将值保持起来以备将来使用时,便将其赋值给(将值“保存”到)一个变量(variable)。变量是一个值的符号名称,可以通过名称获得对值的引用。变量的工作机制是编程语言的令一个基本特性。本章将参照上节帮助理解本章内容,后续将更深入的讲解。

javascript的数据分为两类:原始类(primitive type)和对象类型(object type)

javascript中的原始类包括数字,字符串,布尔值,本章会有单独的章节专门讲述javascript的数字、字符串、布尔值。javascript还有两个特殊的原始值,null(空)和Undefined(未定义),他们不是数字、字符串、布尔值。它们分别代表了各自特殊类型的唯一成员。

javascript除了数字、字符串、布尔值、null、undefined之外就是对象了。对象 (object)是属性(property)的集合。每个属性都由"名/值对"(值可以是原始值,比如数字,字符串,也可以是对象)构成。其中一个比较特殊的对象(全局对象(global object)会在第五小姐介绍,第六小节将更详细的描述)

普通的javascript对象是“命名值”的无需集合。javascript同样定义了一种特殊对象--数组(array),表示带编号的值的有序集合。javascript为数组定义了专用的语法。使数组拥有一些和普通对象不同的特有的行为属性。

javascript还定义了一种特殊的对象--函数。函数是具有与它想关联的可执行代码的对象,通过调用函数来运行科执行代码,并返还运算结果。和数组一样,函数行为特征和其它对象都不一样。javascript为使用函数定义了专用语法。对javascript函数来讲。最重要的是,他们都是真值,并且javascript可以讲他们当做普通对象来对待。

如果函数初始化(使用new运算符)一个新建对象,我们称之为构造函数(constructor)。每个构造函数定义了一类(class)对象--构造函数初始化对象组成的集合。类可以看做对象类型的子类型。除了数组(array)类和函数(function)类之外,javascript还定义了其它三种由用的类。日期(date)定义了代表日期的对象。正则(regExp)定义了正则表达式的对象。错误(error)类定义了那行表示javascript程序中运行时错误和语法错误对象。可以通过定义自己的构造函数来定义需要的类。

javascript解释器有自己的内存管理机制,可以自动对内存进行垃圾回收(garbagecollection)。这意味着程序程序可以按需创建对象,程序员则不必担心这些对象的销毁了内存回收。当不再有任何一个引用指向一个对象,解释器就知道这个对象没有用了,然后会自动回收它所占用的内存资源。
javascript是一种面向对象的语言。不严格的讲,这意味着我们不用全局的定义函数去操作不同类型的值,数据类型本身可以定义方法(method)来使用值,例如要对数组a中的元素进行排序,不必要将a传入sort()函数,而是调运a的一个方法sort()

a.sort(); //sort(a)面向对象的版本
从技术上来将,只有javascript对象才能拥有方法。然而,数字,字符串,布尔值也拥有自己的方法。在javascript中,只有null和undefined是无法拥有方法的值。

javascript的类型可以分为原始类型和对象类型,可分为可以拥有方法的类型和不能拥有方法的类型。同样可分为可变(mutable)和不可变(immutable)类型。可变类型的值是可以修改的,对象和数组属于可变类型:javascript程序可以改变对象的属性值和数组元素的值。

数字、布尔值、null和undefined属于不可改变的类型。比如,修改一个数组的内容本身就说不通。字符串可以看做是字符组成的数组,你可以认为它是可以变的。然而在javascript中,字符串是不可变的。可以访问字符串任意位置的文本,但javascript并未提供修改一直字符串文本内容的方法。

javascript可以自由地进行数据类型转换。比如,如果在程序期望使用字符串的地方使用了数字,javascript会自动将数字转换为字符串。如果期望在使用布尔值的地方使用了非布尔值,javascript也会相应的转换。javascript中对灵活的类型抓换规则对“判断相等”(equality)

javascript的变量是无类型的(untyped),变量可以被赋予人和类型的值,使用var关键字来声明(declare)变量。javascript采用语法作用域,不在任何函数内声明的变量称为全局变量(global variable),它在javascript的程序 中任何地方都是可见的。

1.数字

和其它编程语言不同,javascript不区分整数数值和浮点数数值。javascript中的数值均用浮点数数值来表示。当一个数字直接出现在javascript程序中,我们陈之为数字直接量(numeric literal),javascript支持多种格式的数字直接量。(注意:在任何数字前直接添加负号(-)可以得到它们的负值)但负号是一元求反运算符。,并不是数字直接量语法的组成部分。)

i整数型直接量

javascript中用一个数组序列表示一个十进制的整数

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgfxyy.html