JavaScript 拥有动态类型
JavaScript 的变量是松散的,是一种弱类型或者说动态语言。具体体现在变量在存储哪种数据类型方面没有规定。
例如:
var foo = 42; // foo is a Number now
var foo = "bar"; // foo is a String now
var foo = true; // foo is a Boolean now
//在给一个变量赋予了某种数据类型之后,不建议更换数据类型(但是这样做是有效的)
JavaScript七种数据类型
在 JavaScript 规范中,共定义了七种数据类型,分为 “基本类型” 和 “引用类型” 两大类,如下所示:
- 基本类型:String、Number、Boolean、Symbol、Undefined、Null
- 引用类型:Object
1. 字符串String
- 字符串的作用:用于表示文本数据。
- 字符串的元素索引:字符中每个元素的位置用数字表示,第一位元素的序号是0,后面依次增加。字符串的长度就是它元素的个数。
- 字符串的表现形式:使用单引号
'**'
或双引号"**"
括起来,表示该值是一个字符串。
例如:
var carname="Bill Gates";
var carname='Bill Gates';
可以在字符串中使用引号,只要不匹配包围字符串的引号即可:
var answer="Nice to meet you!";
var answer="He is called 'Bill'";
var answer='He is called "Bill"';
- 获取一个字符串的子串可通过选择个别字母或者使用
String.substr()
。- 两个字符串的连接使用连接操作符
(+)
或者String.concat()
。
P.S.这两个大体明白是什么意思了,但是还没有理解怎么用。有待进一步探索。
- 符号类型(Symbol):符号(Symbols)是ES6新定义的。符号类型是唯一的并且是不可修改的。
2. 数字Number
- Number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一位数字)两种值
- JavaScript 只有一种数字类型。数字可以带小数点,也可以不带:
var x1=34.00; //使用小数点来写
var x2=34; //不使用小数点来写
极大或极小的数字可以通过科学(指数)计数法来书写:
var y=123e5; // 12300000
var z=123e-5; // 0.00123
3. 布尔Boolean
布尔(逻辑)只能有两个值:true 或 false。布尔常用在条件测试中。
var x=true
var y=false
4. 符号Symbol
Symbol 是 ES6 新增的一种原始数据类型,它的字面意思是:符号、标记。代表独一无二的值 。
5. Undefined和Null
Undefined 这个值表示变量不含有值。
Null 类型只有一个值:null
,表示空值,表示没有被呈现.
可以通过将变量的值设置为null
来清空变量。
// 值:undefined
var car="Volvo"; //值:"Volvo"
var car=null; //值:null
cars=null; //清空cars
person=null; //清空person
6. 对象Object
- javascript 中的对象(物体),和其它编程语言中的对象一样,可以比照现实生活中的对象(物体)来理解它。 javascript 中对象(物体)的概念可以比照着现实生活中实实在在的物体来理解。
- 在javascript中,一个对象可以是一个单独的拥有属性和类型的实体。我们拿它和一个杯子做下类比。一个杯子是一个对象(物体),拥有属性。杯子有颜色,图案,重量,由什么材质构成等等。同样,javascript对象也有属性来定义它的特征。
- 对象可以通过new操作符后跟要创建的对象类型的名称来创建。而创建Object类型的示例并为其添加属性和(或)方法,就可以创建自定义对象,如下所示:
var o = new Object();
我们也可以通过下面的方式直接创建一个对象:
var person = { name: 'Bob', age: 20, gender: 'male' };
上述对象就定义了一个名为’Bob‘,20岁,的男生。
typeof操作符
由于JavaScript是松散类型的,因此需要有一种手段来检测给定变量的数据类型——typeof
就是负责提供这方面信息的操作符。对一个值使用typeof
操作符可能返回下列某个字符串:
'undefined' —— 未定义
'boolean' —— 布尔值
'string' —— 字符串
'number' —— 数字值
'object' —— 对象或null
function —— 函数
下面展示一下使用typeof
的示例:
var message = 'some string';
alert(typeof message); // "string"
alert(typeof(message)); // "string"
alert(typeof 95); // number
在实际编程的过程中,可以用typeof
判断任何一个变量的数据类型。
数组Array
数组下标是基于零的,所以第一个项目是 [0],第二个是 [1],以此类推。
下面的代码创建名为 cars 的数组:
var cars=new Array();
cars[0]="Audi";
cars[1]="BMW";
cars[2]="Volvo";
或者 (condensed array):
var cars=new Array("Audi","BMW","Volvo");
或者 (literal array):
var cars=["Audi","BMW","Volvo"];
声明变量类型
当您声明新变量时,可以使用关键词 "new" 来声明其类型:
var carname=new String;
var x= new Number;
var y= new Boolean;
var cars= new Array;
var person= new Object;
JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象。
全文参考:思特沃克教程,JavaScript数据类型
拓展阅读:浅谈 javascript 六种数据类型以及特殊注意点,浅谈 javascript 的数据类型检测