JavaScript基础快速入门教程(二)(js数据类型实例详解)

一、数值类型(Number)JavaScript的数值类型变量可以存储一个数,包括整数、小数、浮点数、十六进制数、八进制数、科学记数法等,例如:

var n01 = 12; // 整数 var n02 = 0.12; // 小数,浮点数 var n03 = 0xFFFF; // 十六进制数 var n04 = 0O12; // 八进制数 var n05 = 3e4; // 科学记数法

Number.MAX_VALUE为数值类型的最大值,Number.MIN_VALUE为数值类型的最小值,最大值和最小值也不是固定的,根据浏览器不同而不同。
超出Number所能表示的范围的数值返回Infinity,NaN是数字类型,但是它不是一个数值,NaN表示Not a Number,可以使用isNaN()判断一个变量是否是NaN(JavaScript的概念总是设计得奇奇怪怪,例如还有下面的undefined和null,无疑是将问题变复杂了)。
【JavaScript基础快速入门教程(二)(js数据类型实例详解)】另外要注意的是,JavaScript不能精确地表示小数,仅仅是近似值,例如0.3-0.2==0.2-0.1返回false,所以在小数处理上要小心,如果要比较小数,可以通过一个误差来判断,例如if((0.3-0.2) < 0.0001)。
若要将一个字符串转为数字可以使用parseInt()函数。
二、布尔类型(Boolean)布尔类型只有两个值:true和false,这个简单的类型在开发中常常被用到,其中一个就是值的比较了,值的比较涉及到双等号===和三个等号的全等号===,这两中比较方式有什么区别呢?
双等号==,表示仅仅比较等号两边的数据值。
全等号===,表示同时比较等号两边的数据值和类型。
var number = 18; var age = "18"; if(number == age) console.log("number == age"); else console.log("number !== age"); if(number === age) console.log("number === age"); else console.log("number !=== age"); /** * 输出: * number == age * number !=== age * */

三、字符串类型(String)字符串类型的值使用双引号或单引号将一个字符串引起来,使用+号可以连接字符串,其它类型转为字符串使用方式toString(),若使用到特殊字符,例如换行符等,这种需要使用转义字符,常见的转义字符有:
样式 含义
\123 1~3位八进制数据所表示的字符,如\256
\uF890 4位十六进制数据所表示的字符,如\u0014
\’ 单引号字符
\\ 反斜杠字符
\t 垂直制表符
\r 回车
\n 换行符
\b 退格
\f 换页
四、未定义类型(undefined)未定义类型是一种类型,需要强调它是一种数据类型,它表示一个未定义的变量,空值,注意变量的声明和定义是不同的,var value为声明变量,但是没有分配内存空间这时候typeof(value)返回undefined,var value = http://www.srcmini.com/12为定义一个变量并分配相应的内存空间,这时候typeof(value)返回number。
undefined产生的情况一般是声明一个变量但未对其赋值,或者对未声明的变量进行操作,或者显式地给变量赋值undefined,试图访问没有返回值的函数的返回值也会返回undefined。
例子:
var value; var value_01 = undefined; var fn = function(value){}; console.log(typeof(value)); // 已声明但未定义 console.log(typeof(message)); // 未声明 console.log(value_01); // 显式赋值为undefined console.log(fn()); // 函数没有返回值 // 全部输出:undefined

五、null类型Null并不是一种数据类型!它是一个值,引用类型的的其中一个值,只不过这个值为null,即为空值,所以在数值上和undefined的数值是相等的,但是类型不同,null是object引用类型。那么undefined和null根本上有什么区别呢?主要体现在内存上,编程必须分析内存,看别人解析半天好像也没弄懂它们的区别,JavaScript的设计缺陷。看下图,变量a此时就是undefined,值为空,b为object引用类型,若此时没有值,则为null,所以undefined是一种数据类型,而null只是一种值,若没有undefined类型,估计也就自然明白null是object的一个空值了。
JavaScript基础快速入门教程(二)(js数据类型实例详解)

文章图片
看例子:
console.log(typeof(undefined)); console.log(typeof(null)); console.log(null == undefined); console.log(null === undefined); /** * 输出: * undefined * object * true * false */

六、函数类型(function)在JavaScript中,函数也是一种类型,但其实函数也是对象,函数也有自身的属性和方法,属性:length表示方式接收的参数个数,prototype保存对象实例的所以方法,apply()函数用户设置函数内部的this变量,默认为window,apply函数接受两个参数,一个是函数的运行作用域,另一个是参数数组。Call()函数用于调用,bind()方法会创建一个函数实例,this被绑定到传给bind函数的值。
实例:
var coder = {}; coder.name = "Visual"; var run = function(name){ console.log(this.name); }console.log(run.length); console.log(run.prototype); var runner = run.bind(coder); runner(); /** * 输出: * 1 * {constructor: ?} * Visual */

七、引用类型(Object)JavaScript中,一切皆对象,引用类型的定义形式和使用实例如下:
var song = {}; // 或使用 var song = new Object song.title = "The Key"; song.singer = "Eason"; song.lyrics = "Far away from me"; console.log(song.title); console.log(song.singer); console.log(song.lyrics); /** * 输出: * The Key * Eason * Far away from me */

    推荐阅读