计算机程序的实质很大程度上可以说是机器对各种信息(值)的操作与读写。在JavaScript中,存在多种类型的值,这些值分成两大类:Primitive(基本类型)和Object(对象)。
Primitive
JavaScript中Primitive有5种类型:
1.Number。所有的数字,无论是整数还是小数,均为Number类型。
2.String。字符串类型。
3.Boolean。布尔类型,true或者false。
4.null。此类型只有null一个值。
5.undefined。此类型只有undefined一个值。
Object
除了Primitive,JavaScript中其它任何值均为Object(对象)。Object有以下几种:
1.JSON键值对对象。如{“name”:”Bob”, “age”:42}。
2.数组(array)。如[1,4,5,7,9]。
3.函数(function)。如function(){return true;}。在JavaScript中函数有两种存在形式:1. 可执行代码块;2. 类(Class)的构造器(constructor)。无论是以哪种形式存在,函数(function)始终都是对象。
JS自带全局对象
为了方便程序编写,JavaScript自带一个全局对象,该全局对象拥有以下7个成员变量,其类型均为Object:
1.Math。可以通过调用Math对象的方法来完成一系列复杂的数学运算。
2.Number。可以通过访问Number对象的成员变量来获取一些特殊值。
3.Array。数组对象的构造函数。
4.Function。函数对象的构造函数。
5.Date。日期对象的构造函数。
6.RegExp。正则表达式对象的构造函数。
7.Error。错误对象的构造函数。
在进行程序编写时,由于可以直接访问上述7个变量,因此也可以将它们当作全局对象来使用。
Immutable与Mutable
Primitive与Object有一个泾渭分明的特性:所有的Primitive都是Immutable的,所有的Object都是Mutable的。以String类型为例,调用String的方法对其进行编辑后,JavaScript会将编辑后的结果保存在一个新的String对象中,原String对象不会有任何改变:
var s = "test"; s.toUpperCase();//return a new String object "TEST" console.log(s);//"test" -- original String s does not change
实验
在JavaScript中,可以通过使用typeof关键词来获取某个值的类型。
获取数字的类型:
var n = 42; console.log(typeof n);
获取字符串的类型:
var s = "test"; console.log(typeof s);
获取布尔值的类型:
var b = true; console.log(typeof b);
获取null的类型:
var x = null; console.log(typeof x);
获取undefined的类型:
var y = undefined; console.log(typeof y);
获取JSON对象的类型:
var j = {"name":"Bob", "age":42}; console.log(typeof j);
获取数组对象的类型:
var a = [2,3,5,7,11]; console.log(typeof a);
获取函数对象的类型:
var f = function(){return true;}; console.log(typeof f);
本文向大家介绍详细介绍Python的鸭子类型,包括了详细介绍Python的鸭子类型的使用技巧和注意事项,需要的朋友参考一下 鸭子类型基本定义 首先Python不支持多态,也不用支持多态,python是一种多态语言,崇尚鸭子类型。 以下是维基百科中对鸭子类型得论述: 在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格。在这种风格中,一个对象有效的语义,不是由继承自特定的类或实
本文向大家介绍Lua中的基本数据类型详细介绍,包括了Lua中的基本数据类型详细介绍的使用技巧和注意事项,需要的朋友参考一下 基础介绍 Lua是一种动态类型的语言。在语言中没有类型定义的语法,每个值都带有其自身的类型信息。在Lua中有8中基本类型,分别是: 1.nil(空)类型 2.boolean(布尔)类型 3.number(数字)类型 4.string(字符串)类型 5.userdata(自定义
本文向大家介绍JavaScript中的console.log()函数详细介绍,包括了JavaScript中的console.log()函数详细介绍的使用技巧和注意事项,需要的朋友参考一下 对于JavaScript程序的调试,相比于alert(),使用console.log()是一种更好的方式,原因在于:alert()函数会阻断JavaScript程序的执行,从而造成副作用;而console.log
本文向大家介绍JavaScript中的console.time()函数详细介绍,包括了JavaScript中的console.time()函数详细介绍的使用技巧和注意事项,需要的朋友参考一下 如果需要在Web调试过程中知道代码执行的时间,那么可以通过在JavaScript代码中添加console.time()语句和console.timeEnd()语句来对程序的执行进行计时。以下面这个耗时较长的f
本文向大家介绍JavaScript中的console.group()函数详细介绍,包括了JavaScript中的console.group()函数详细介绍的使用技巧和注意事项,需要的朋友参考一下 在使用console.log()或者其它日志级别的控制台输出功能时,日志输出是没有层级关系的。当程序中日志输出较多时,这一局限性将带来不小的麻烦。为了解决这一问题,可以使用console.group()。
本文向大家介绍Javascript中作用域的详细介绍,包括了Javascript中作用域的详细介绍的使用技巧和注意事项,需要的朋友参考一下 1、编译原理 在传统编译语言的流程中,程序中的一段代码执行前会经历三个步骤。统称为“编译”。 词法分析 将代码字符串分解成有意义的代码块,这些代码块称为词法单元。例如:在js中,var a = 2;。这段程序通常被拆分为以下词法单元。var、a、2、;。至