个性化阅读
专注于IT技术分析

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不能精确地表示小数,仅仅是近似值,例如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 = 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的一个空值了。

null和undefined的区别图解

看例子:

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
  */
赞(0)
未经允许不得转载:srcmini » JavaScript基础快速入门教程(二):js数据类型实例详解

评论 抢沙发

评论前必须登录!