JavaScript 知识点之数据类型

因为网上相关的教程很多,接触过其它编程语言的朋友们应该很容易上手,我在此就不多写了。接下来我只写一些我认为在学习过程中容易出问题的地方。

一、数据类型划分

  • Number
  • String
  • Boolean
  • Object
    • Function
    • Array
    • Date
    • RegExp
  • Null
  • Undefined

可以使用typeof查看变量的类型,typeof运算符产生的值有number, string, boolean, undefined, function, object. 但是请注意,如果运算数是一个数组或null, 那么结果是object.

二、Number

在JavaScript中,浮点与整数间没有区别。事实上,JavaScript中的每个数字都表示使用双精度64位格式IEEE 754。简单理解,所有数字都是浮点。在处理浮点数的时候一定要小心,比如:

1 alert(0.1 + 0.2 === 0.3); // false
2 alert(0.1 + 0.2 === 0.30000000000000004); // true

Infinity和-Infinity

即正无穷和负无穷

1 alert(1 / 0); // Infinity
2 alert(-1 / 0); // -Infinity

NaN

NaN,即非数值(Not a Number)。 它表示的不是一个数字,尽管typeof NaN === ‘number‘; 返回的是true. 它是一个特殊的值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。

可以通过Number.NaN 得到NaN 值,任何与NaN 进行运算的结果均为NaN. NaN不等于任何值,包括它自己。

1 alert(Number.NaN); //NaN
2 alert(NaN + 1); //NaN
3 alert(NaN === NaN) //false
4 alert(NaN !=== NaN) //true

可以用isNaN来判断这个值到底是不是NaN。isNaN()函数在接收到一个值之后,会尝试将这个值转换为数值。

1 alert(isNaN(25)); //false,25 是一个数值
2 alert(isNaN(‘25‘)); //false,‘25‘是一个字符串数值,可以转成数值
3 alert(isNaN(‘hi‘)); //true,‘hi‘不能转换为数值

如果我们要检测一个变量是真的是数字而不是NaN, Infinity,或者通过字符串转换过来的,我们可以借助isFinite函数。isFinite可以去掉NaN, Infinity,但会尝试将这个值转换为数值。所以我们可以这样写:

1 var isNumber = function isNumber(value)
2 {
3     return typeof value === ‘number‘ && isFinite(value);
4 }
5
6 alert(isNumber(‘10‘)); // false

parseInt

parseInt可以把字符串转换为整数。它遇到非数字时会停止解析。

1 alert(parseInt(‘12.34‘)); //12,去掉小数点后面的
2 alert(parseInt(‘12.34abc56‘)); //12,去掉小数点后面的,遇到非数字时会停止解析
3 alert(parseInt(‘abc12.34‘)); //NaN,如果第一个不是数值,就返回NaN
4 alert(parseInt(‘‘)); //NaN,空返回NaN

parseInt除了能够识别十进制数值,也可以识别八进制(我实验后发现只是对低版本浏览器有效,FF,Chrome会将前导0去掉)和十六进制。

1 alert(parseInt(‘070‘)); //56=>八进制(IE6);70=>FF,Chrome会将前导0去掉
2 alert(parseInt(‘080‘)); //0=>(IE6)八进制中8,9是无效的,按0处理; 80=>FF,Chrome会将前导0去掉
3 alert(parseInt(‘0xA‘)); //10,十六进制
4 alert(parseInt(‘0xAyz‘)); //10,十六进制,yz 被自动过滤掉

同时parseInt还提供了第二个参数,用于解决各种进制的转换。这也是推荐的写法,以免发生像上面例子中不同浏览器有不同处理的问题。

1 alert(parseInt(‘101010‘, 2)); // 42, 二进制
2 alert(parseInt(‘0xAF‘)); //175,十六进制
3 alert(parseInt(‘AF‘,16)); //175,第二参数指定十六进制,可以去掉0x 前导
4 alert(parseInt(‘070‘, 8)); //56, 八进制

parseFloat

parseFloat是用于浮点数值转换的,从第一位解析到非浮点数值位置。但它是不认十六进制的。

1 alert(parseFloat(‘0xA‘)); //0,不认十六进制
2 alert(parseFloat(‘1.234e7‘)); //12340000,可以把科学技术法转成普通数值

三、String

String类型用于表示由于零或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号(")或单引号(‘)表示。字符串的很多方法都会和正则表达式一起使用,等介绍正则表达式的时候再详细说明,这里就先不多写了,只先说两点:

提取字符串中的一个字符

1 var name = ‘Wendy‘;
2 alert(name.charAt(1)); //e

如果写成name[1]在IE6下会显示undefined,所以使用时要慎重。

提取字符串的某个部分

推荐使用slice, 因为substring不能处理负数参数。详细用法请看w3c之slice

四、Boolean

Boolean 类型有两个值:true 和false.
任何值都可以转为Boolean,遵循着以下原则:
1. false, 0, 空串(""), NaN, null, undefined均转为false
2. 其余值转为true

五、undefined和null

undefined是声明了变量但未对其初始化时赋予该变量的值,null则用于表示尚未存在的对象。如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null.

关于object, 会在以后的文章中详细介绍。

未完待续......

时间: 2024-12-14 13:18:06

JavaScript 知识点之数据类型的相关文章

【译】Javascript中的数据类型

这篇文章通过四种方式获取Javascript中的数据类型:通过隐藏的内置[[Class]]属性:通过typeof运算符:通过instanceof运算符:通过函数Array.isArray().我们也会看看原型对象的构造函数,可能会有意想不到的数据类型结果. [这篇文章是我在adobe发布的文章,我发布在这里只是为了存档.] 知识储备 在开始我们的话题之前,我们不得不复习一些所需的知识点 1.1 原始值和对象 Javascript中的数据,要么是原始值,要么是对象. 原始值.下面是原始值: und

JavaScript知识点总结

JavaScript学习总结1.JavaScript是作用于网络和HTML的一个编程语言.2.JavaScript代码必须放在<script></script>标签之间,Javascript现在是HTML默认的脚本语言,所以在<script>标签中不需要声明脚本语言为JavaScript,即不需要type="text/javascript".3.可以添加任意数量的脚本在HTML document中,JavaScript可以放在<head>

javascript 知识点梳理 -- 整理自广州传智王老师

Javascript Javascript中的数据类型 在JavaScript中一共有六种数据类型: 1)String   :字符串类型,在JavaScript中可以通过双引或单引括起来 2)Number  :数值类型,在JavaScript是没有整形与浮点型之说的,所有的数值类型都属于Number类型,10  10.88  5.66 3)Boolean  :布尔类型,其值可以是true或false 4)Undefined :变量有声明,但未赋值 5)Null      :空类型 6)Objec

Javascript中的数据类型之旅

虽然Javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:Number.String.Boolean.Object.Udefined.Null.其中,Object属于复杂数据类型,Object   由无序的键值对组成.其余几种都属于简单数据类型.注意:变量类型首字母大写,而变量值首字母是小写的. JavaScript不支持自定义类型,所以JavaScript中的所有值都属于这六种类型之一.根据ECMAScript 5.1的规范,javascript中共有六种数据类型,分别为:

JavaScript中基本数据类型和引用数据类型的区别

1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值. 2.常见的基本数据类型: Number.String .Boolean.Null和Undefined.基本数据类型是按值访问的,因为可以直接操作保存在变量中的实际值.示例: var a = 10; var b = a; b = 20;

javascript有如下数据类型的转换方法

javascript有如下数据类型的转换方法: 一,转换成数字 xxx*1.0 转换成字符串 xxx+"" 二,从一个值中提取另一种类型的值,并完成转换工作. .提取字符串中的整数:parseInt(); 例:parseInt("123zhang")的结果为123 .提取字符串中的浮点数:parseFloat(); 例:parseFloat("0.55zhang")的结果为0.55 .执行用字符串表示的一段javascript代码:eval();

JavaScript 七种数据类型

在 JavaScript 规范中,共定义了七种数据类型,分为 "基本类型" 和 "引用类型" 两大类,如下所示: 基本类型:String.Number.Boolean.Symbol.Undefined.Null 引用类型:Object 下面将详细介绍这七种数据类型的一些特性. 1.String 类型 String 类型用于表示由零或多个 16 位 Unicode 字符组成的字符序列,即字符串 . 1.1 存储结构 由于计算机只能处理数字,如果要处理文本,就必须先把文

javascript 的原始数据类型

javascript 的原始数据类型有五种,分别是Number.String.Boolean.null.undefined 原始类型数据的特点:值保存在变量本地,且赋值给其他变量后,其它变量改变不影响原来的值. 一.Number类型: 专门保存数字的类型,可用于进行数学计算等的数值. 所占空间:64位(8个字节)二进制保存.注:一个字节8个位. 强调:数字所占的空间与数值的大小没有关系,均占8个字节. 在Number类型中,经常会因为舍入误差引起错误; 舍入误差:因为计算机中无法精确表是十分之一

JavaScript中的数据类型和数据类型转换

JavaScript中的数据类型主要有两种,一种是基本数据类型,包括Number,String,Null,Undefined,Boolean,还有一种是引用类型Object typeof是操作符,返回值为String ,返回值包括 undefined,number,string,boolean,object,function. 未经初始化的变量会被保存为undefined 原文地址:https://www.cnblogs.com/sz-toosimple/p/11061794.html