JavaScript 数据类型
JavaScript 变量可以存储很多数据类型: 数字, 字符串, 对象等:
varlength=16;// 数字varlastName="Johnson";// 字符串varx={firstName:"John",lastName:"Doe"};// 对象
数据类型的概念
在编程中,数据类型是一个重要的概念
为了能够对变量进行操作,了解一些关于类型的知识是很重要的.
没有数据类型,计算机不能安全地解决这个问题:
varx=16+"Volvo";
将16和"Volvo"相加是否有意义 ? 它会产生错误,还是会得到一个结果?
JavaScript 将上述例子视为:
varx="16"+"Volvo";
当添加一个数字和一个字符串,JavaScript将数字作为字符串.
varx=16+"Volvo";
让我试试
varx="Volvo"+16;
让我试试
JavaScript表达式的值从左到右。不同的序列可以产生不同的结果:
varx=16+4+"Volvo";
让我试试
varx="Volvo"+16+4;
让我试试
在第一个例子中,把16和4作为JavaScript的数字,直到它遇到 "Volvo".
在第二个例子中,因为第一个操作数是字符串,所有操作数都被视为字符串.
JavaScript类型是动态的. JavaScript有一个动态类型. 这意味着可以使用相同的变量来保存不同的数据类型:
varx;// Now x is undefinedvarx=5;// Now x is a Numbervarx="John";// Now x is a String
JavaScript 字符串
字符串(或文本字符串)是一系列字符 "John Doe".
字符串是用引号来书写的。您可以使用单引号或双引号:
varcarName="Volvo XC60";// 使用双引号varcarName='Volvo XC60';// 使用单引号
你可以在字符串内使用引号, 只要它们不匹配字符串周围的引号:
varanswer="It's alright";// 在双引号里面有单引号varanswer="He is called 'Johnny'";// 双引号里面有单引号varanswer='He is called "Johnny"';// 单引号里面有双引号
让我试试
在本教程后面,您将了解更多有关字符串的知识。.
JavaScript 数字
JavaScript的只有一种类型的数字.
数字可以带或者不带小数点:
varx1=34.00;// 带小数点varx2=34;// 不带小数点
Extra large or extra small numbers can be written with scientific (exponential) notation:
特别大或者特别小的数字可以用科学(指数)计数法
vary=123e5;// 12300000varz=123e-5;// 0.00123
让我试试
在本教程后面,您将了解更多有关数字的知识.
JavaScript Booleans
布尔值只能有两个值:true或false.
varx=true;vary=false;
布尔值,通常用在条件测试中.
您将在本教程中了解更多有关条件测试的信息.
JavaScript 数组
JavaScript 数组用方括号表示.
数组项用逗号分隔.
下面的代码声明(创建)一个被称为cars的数组,包含3个选项 (汽车名称):
varcars=["Saab","Volvo","BMW"];
让我试试
数组索引为零,这意味着第一个项目是[ 0 ],第二个是[ 1 ],等等.
在本教程后面,您将了解更多有关数组的知识。
JavaScript 对象
JavaScript 对象用大括号表示.
对象的属性用名键:值对,以逗号分隔.
varperson={firstName:"John",lastName:"Doe",age:50,eyeColor:"blue"};
让我试试
上面例子中的对象(人)有4个属性: firstName, lastName, age, and eyeColor.
在本教程后面,您将了解更多有关对象的知识.
typeof 操作符
你可以使用JavaScript typeof运算符来判断一个JavaScript变量的类型.
typeof运算符返回一个变量或表达式的类型:
typeof""// Returns "string"typeof"John"// Returns "string"typeof"John Doe"// Returns "string"typeof"John"+"Doe"// Returns "string"
让我试试
typeof0// Returns "number"typeof314// Returns "number"typeof3.14// Returns "number"typeof(3)// Returns "number"typeof(3+4)// Returns "number"
让我试试
原始数据
原始数据值是一个简单的数据值,没有附加属性和方法.
typeof运算符返回一个原始类型:
string
number
boolean
null
undefined
typeof"John"// Returns "string"typeof3.14// Returns "number"typeoftrue// Returns "boolean"typeoffalse// Returns "boolean"
让我试试
复合数据
typeof运算符可以对两个复合类型返回:
function
object
typeof[1,2,3,4]// Returns "object" (not "array", see note below)typeof{name:'John',age:34}// Returns "object"typeoffunctionmyFunc(){}// Returns "function"
让我试试
typeof运算符返回对象针对数组,因为JavaScript中的数组是对象.
Undefined
在JavaScript中,变量没有值,或者值为undefined. typeof 也是 undefined.
varperson;// Value is undefined, type is undefined
让我试试
任何变量可以被清空,通过将值设置为未定义。类型也将是未定义的.
person=undefined;// Value is undefined, type is undefined
让我试试
空值
空值与undefined无关.
空字符串变量具有值和类型.
varcar="";// 它的值是"", typeof "string"
让我试试
Null
在JavaScript里面 null 是"没有任何内容". 它应该是不存在的东西.
不幸的是,在JavaScript中,null数据类型是一个对象.
你可以考虑在JavaScript typeof null对象错误。应该是空的.
通过将它设置为空可以清空对象:
varperson=null;// 值是null, 但是类型还是对象
让我试试
还可以将对象设置为 undefined,来清空一个对象:
varperson=undefined;// 值是 undefined, 类型是undefined
让我试试
Undefined 和 Null之间的区别
typeofundefined// undefinedtypeofnull// objectnull===undefined// falsenull==undefined// true
让我试试