在javascript中申明变量使用的关键字都是var,这点与其他的编程语言不尽相同,但是javascript亦含有五种基本的数据类型(也可以说是简单数据类型),它们分别是:Undefined,Null,Boolean,Number和String。还含有一种复杂数据类型—Object。这里我们不谈复杂数据类型。
1、typeof
typeof这个关键字是一定要说的,因为javascript是松散类型的,在变量申明时并没有使用与之类型相对应的关键字,如果在代码中想要获知某个变量的基本数据量,就可以使用typeof。这里要注意的是typeof返回的是字符串类型。
(1)、"undefined"——未申明,或者变量的值即为undefined或者未初始化;
(2)、"boolean" ——如果这变量的值是布尔类型;
(3)、"string" ——值是字符串类型;
(4)、"number" ——值是数字类型;
(5)、"object" ——对象或者值为null;
(5)、"function" ——函数。
例如:
var testString = "Hello";
var testBoobean = true;
var testUndefined = undefined;
var testUndefined1;
var testNull = null;
var testObject = {a:1};
var testFunction = function(){return;};
alert(testString);//"string"
alert(testBoobean);//"boolean"
alert(testUndefined);//"undefined"
alert(testUndefined1);//"undefined"
alert(testUndefined2);//"undefined"
alert(testNull);//"object"
alert(testObject);//"object"
alert(testFunction);//"function"
在js中函数也是对象,但是函数又要一些区别与其他对象的特定,所以ECMAScript在使用typeof的时候将其区分开来。
2、Undefined
这是一个很有意思的数据类型,因为它的值只有一个,那就是undefined。在申明变量时如果没有将变量赋值的话这个变量也是属于Undefined类型的。
例子:
var testUndefined;
var testUndefined1 = undefined;
//申明的时候没有赋值,那么解析器会自动给其赋值为undefined,所以输出为true
alert(testUndefined == undefined)//true
alert(testUndefined1 == undefined)//true
//根据上面所说的typeof返回的是字符串"undefined"所以输出为true
alert(typeof testUndefined == "undefined")//true
如果一个变量没有申明就直接去访问解释器会报错误信息,但是这样的变量如果使用typeof返回的结果也是"undefined"。
3、Null
Null也是一个只有一个值得数据类型,它的值就是null,任何变量只要给其赋值为null的话这个变量的数据类型就是Null类型。null值表示控对象指针,所以申明的变量要是想用来保存对象并且在申明之初还不能确定具体保存哪个对象的时候就将其赋值为null,在使用的时候只要检查该变量是否为null就可以知道该变量是否保存了对象。
例如:
var testNull = null;
//对null使用typeof返回的是"object"
alert(typeof testNull); //"object"
alert(testNull != null); //false
testNull = o {a:1};
alert(testNull != null);//true
有上面的代码可以很清楚的看出如果将变量初始化为null那么只要判断其值是否为null就知道该变量是否保存了对象的引用,当然事先申明为null的变量也可以保存基本类型数据。
其实null和undefined还是有点微妙的关系的,在javascript中undefined值派生自null,因此ECMA-26规定了它们的相等性测试为true。
例如:
alert(undefined == null)//true
var testNull = null;
var testUndefined = undefined;
alert(testNull == null)//true
alert(testNull == undefined)//true
alert(testUndefined == undefined)//true
alert(testUndefined == null)//true
在实际的编程中我们没有必要将一个变量赋值为undefined,但是却有很多情况下要将变量赋值为null,将变量赋值为null可以便于我们将它与undefined区分也便于垃圾回收处理。
4、Boolean
在javascript中Boolean类型用还是比较多的一种简单数据类型,它有两个值,分别是true和false,因为在javascript中字母是区分大小写的,所以True和False不是Boolean的值。
可以通过如下方式给Boolean类型的变量赋值:
var testBoolean = true;
var testBoolean1 = false;
调用Boolean()方法可以将任何类型的值转化成与之相对应的Boolean类型的值,也就是可以将其转化成true或者false。
例如:
//将非空字符串转化成true
alert(Boolean("a"))//true
//将空字符串转化成false
alert(Boolean(""))//false
//将对象转化成true
alert(Boolean({a:"a"}))//true
将各种类型的值转化成Boolean类型的规则如下:
数据类型 |
转化成true的值 |
转化成false的值 |
Boolean |
ture |
false |
String
|
所有的非空字符串 |
""(空字符串) |
Number |
任何非零数字(包括无穷大) |
0和NaN |
Object |
任何对象 |
不存在 |
Undefined |
不存在 |
undefined |
var test = "a";
if(test){
alert("test转换成了true");
}//test转换成了true
运行上述代码会弹出一个框,并且在框中显示“test转换成了true”,这个例子说明在需要使用Boolean的地方,即使没有显示的调用Boolean()方法,解释器还是会自动的调用的,所有在使用的时候一定要注意。
5、Number
javascript为了支持各种数值类型,定义了不同数值字面量格式。
最基本的是字面量是十进制,十进制整数可以像下面这样直接在代码中输入:
var intNum = 55 //整数
此外还有八进制和十六进制数的字面量。八进制在js中表示是第一位一定要是0,后面就是八进制字数序列(0~7),如果字面量值超出了范围,前面的0会被忽略,后面的值会被当成十进制解析。请看下面的例子:
var octalNum1 = 070 //八进制的56
var octalNum2 = 039//无效的八进制---解析为十进制的39
十六进制字面量前两位必须是0x,后面跟十六进制数字(0~9及A~F)。字母A~F不区分大小写。
var hexNum1 = 0xA//十六进制的10
var hexNum2 = 0x1f//十六进制的31
在进行数值计算时,不论是八进制还是十六进制最终都会被转化成十进制数值。
var hexNum1 = 0xA//十六进制的10
var hexNum2 = 0x1f//十六进制的31
alert(hexNum1+hexNum2);//输出41
(1)、浮点数
浮点数就是带有小数点,并且小数点后至少有一位的数字的数。在javascript中赋值的时候对于 浮点数的小数点的前面可以没有数字,但是我们不推荐这种写法。下面是浮点数的几个例子:
var floatNum1 = 1.1//有效
var floatNum2 = 0.2//有效
var floatNum3 = .1//有效,但不推荐使用
为了尽量减少内存的使用,ECMAScript会不失时机的将一些浮点数保存为整数,因为浮点数在 存储的时候占用的空间比整数多出一倍。哪种浮点数会被保存为整数呢?1、小数点后面没有数字 的;2、小数点后面全是0的。例如:
var floatNum4 = 1. //小数点后面没有数字的,会被保存为整数1
var floatNum5 = 1.0//小数点后面全是0,会被保存为整数1
对于很大的或者很小的值,也可以用科学计数发的浮点类型表示。例如:
var floatNum6 = 2.33e7 //等于23300000
在默认情况下ECMAScript会将小数点后面0的个数大于等于6个的数字用科学计数发表示。
浮点数值的最高精度是17位小数,但是在进行算术计算时其精度远远不如整数。例如,0.1加0.2的结果不是0.3,而是0.30000000000000004。这个舍入误差会导致无法测试特定的浮点数值。例如:
var a = 0.2;
var b = 0.1
alert(a + b = 0.3)//输出false
(2)、数值范围
未完待续。。。
分享到:
相关推荐
浅谈JavaScript对象之教学 本文旨在探讨JavaScript对象的教学要点,旨在帮助高职软件技术专业的学生更好地理解和掌握JavaScript语言。文章从对象的概念、使用原生对象、原型链的理解、自定义对象的创建和新的语法...
JavaScript中基本包装类型是指为了操作简单的基本数据类型,ECMAScript提供了三个特殊的引用类型:Boolean、Number和String。这些引用类型与普通对象类似,可以调用一些方法来操作对应的基本类型数据,但它们具有...
首先,JavaScript中的六种基本数据类型分别是:String(字符串)、Null(空)、Number(数值)、Boolean(布尔)、Object(对象)以及Undefined(未定义)。每种类型都有其独特的特点和用法。 对于typeof操作符的...
在本篇文章中,我们主要探讨了JavaScript中的Array对象,包括其定义、属性、以及常用的实例方法。 首先,我们需要了解JavaScript中数组的基本概念...掌握这些方法将大大提高我们处理JavaScript数据结构的效率和能力。
悟透JavaScript>>写得太传神,印象太深刻了】 二、javascript的数据类型检测 1、万能的typeof 我们先测试一下通过typeof来获取简单数据类型。什么也别说了,上代码是王道: 代码如下: // 获取变量obj的数据类型 ...
本文从javascript的数据类型的简介开始谈起,接着讲述了javascript的6种数据类型,分别为Number、Boolean、String、Null、Undefined和Object,并给出了一个typeof操作符的示例,这里分享给大家。
JavaScript是一种动态类型的编程语言,它的数据类型分为两大类:基本数据类型和引用数据类型。基本数据类型包括Boolean、Number、String、Undefined、Null以及ES6新增的Symbol和BigInt。引用数据类型主要是Object,...
### 浅谈JavaScript库——jQuery与ExtJs的对比研究 #### 一、引言 随着Web 2.0和RIA(Rich Internet Applications)技术的普及,JavaScript作为一种前端开发的重要工具,逐渐占据了重要的地位。它不再仅仅是用于...
在JavaScript中,函数是一种非常重要的数据类型,它们可以以多种形态存在。本文将深入探讨JavaScript函数的四种主要存在形态:函数形态、方法形态、构造器形态以及上下文调用模式。 1. **函数形态**: 函数形态是最...
JavaScript 中有几种基本的数据类型:字符串(String)、数字(Number)、布尔(Boolean)、对象(Object)、数组(Array)、函数(Function)、空(Null)、未定义(Undefined)以及ES6新增的符号(Symbol)和大...
JavaScript中的标准对象是编程语言的核心组成部分,它们提供了一系列预定义的功能和属性,使得开发者能够更加高效地处理数据和实现各种复杂逻辑。在这个文档中,我们将深入探讨JavaScript中的几个关键标准对象,包括...
JavaScript数据类型是非常简洁的,它只定义了6中基本数据类型 •null:空、无。表示不存在,当为对象的属性赋值为null,表示删除该属性 •undefined:未定义。当声明变量却没有赋值时会显示该值。可以为变量赋值为...
// 创建一个包含多种数据类型的数组 ``` 需要注意的是,`new Array(20)`并不会创建一个包含20个元素的数组,而是创建一个长度为20但元素为空的数组。而数组字面量`["小伞", 1, true, undefined, [2, "王"], ""]`则...