Javascript是一种弱类型语言,没有明确的类型分类;网上分类的方式比较多,个人感觉不比去特别的追究细分是什么什么类型,若是能够明确的分出类型的话,javascript就不是弱类型语言,又由于大家所使用的主体语言概念不完全相同(像C#,PHP,C语言等),分类的时候就会根绝自己的主体语言的习惯来分类,无论怎样分类只要有助于自己的理解,能够方便,正确灵活的使用就可以了;下面是两是种常见的分类方式和一些必须了解的基础用法知识;

一、第一种分类方式,也是比较常见的一种分类方法:

分为9种类型:分别是Undefined,Boolean,Object,Number,Null,String,Reference,List,Completion,其中Reference,List,Completion三种类型仅共语言解析运行时使用,无法从程序中直接访问;下面一一介绍;

1、Undefined 类型:是全局对象window的一个特殊属性,顾名思义就是未定义的意思;Undefined类型只有一个值Undefined,表示一个变量定义了但未赋值;

如:var a;  alert(a); // 弹出undefined;

下面是几种常见的会出现undefined的情况:

(1)获取一个对象的属性(原本属性和protoType扩展的属性)不存在时,返回undefined;

(2)当一个函数function(){}没有明确的返回值时,显示undefined,例子:function way(){}  alert(way());//弹出undefined;

(3)javascript中的参数有多个形参的话,若果调用参数的话,参数数量小于形参数量,那么其他的参数值就为undefined;

2、Null类型:null是javascript保留的关键字,null类型也只有一个null值,表示为空或者不存在的对象引用;

(1)javascript中的if()判断语句无论是null类型还是undefined类型他们的返回值都是false,也就是说一个变量若是null 或者undefined那么他就为false;

if (null){
alert("sdf");//进入不了
}
if (undefined){
alert("sdfsdf");//进入不了
}
var a=12;
if (a){
alert("sdf"); //能进入
}

3、Number类型:表示数值,包含了所有的数值类型,不像高级语言那么细分成int,double,deciable,他的取值范围是:1.7976931348623157E+308到-1.7976931348623157E+308之间,就是1.7976931348623157*10的308次方到-1.7976931348623157*10的308次方之间;Number类型有一个特殊的值NaN,他是Number类型中一个非数值的值,就像无穷大,所以NaN不等于NaN;

4、Object类型:用来表示一个对象,像String, Array,new 一个对象等,当这个对象为空时,就是null了;所以alert( typeof(null))的弹出值为object;

5、String类型:string类型是javascript中的一个比较重要的类型,它用来表示一个字符串,我们在写脚本的时候需要处理很多的字符串,所以javascript库中也提供了很多字符串处理方法,网上已有很多资料了,这里就不一一细说了;

6、Boolean类型:布尔类型大家都很熟悉,这里说几个他的特殊用法:(1)boolea类型和Number类型相结合时,true转化为1,false转化为0;

var a = true;
alert(a+1);//弹出2
var a = true;
alert(a);//弹出true

上述六种类型也可以相互转化,基本上是数值和字符串和布尔值之间的转化:

(1)       Number类型转化为string类型,用tostring();

(2)       String类型转化为Number,用Number();

var str = "123";
var num = 1;
alert(str + num);//弹出1231
alert(Number(str)+num) //弹出124

也可以使用全局函数parseInt()和parseFloat()来进行转换;parseInt()和parseFloat()的区别是Number()转换是整个值,而parseInt()和parseFloat()则可以只转换开头的数字部分。

alert(Number("123asdf"));//弹出NaN
alert(Number("1.2.3"))//弹出NaN
alert(parseInt("123sdf"));//弹出123
alert(parseFloat("sdfsdf"));//弹出NaN
alert(parseInt("sdf345"))//弹出NaN

Number()在转化的过程中布尔类型的true和false分别被转化为1和0其他的不能转化为数值的全部转化NaN。

alert(Number(true));//弹出1
alert(Number(false));//弹出0
alert(Number(null));//弹出0

其他的若是不能转化为数值类型的,基本上全转化为NaN;

扩展小知识:(1)判断一个变量是否是数值,用IsNan()方法;

(2)在javascript中==和===的区别: "==" 只要求值相等; "===" 要求值和类型都相等;

(3)instanceof只是用于判断object是否是class类的一个实例,是的话返回true,否则返回false;alert(a instanceof String);

二、第二种分类方法:用typeof()关键字来分类,可以分为:undefined,number,string,boolean,object,function

类型

例子

运行结果

Undefined

var a1; alert(typeof(a1));

function way{}  alert(way()); alert(typeof(way()))

undefined

number

Var num1=12; alert(typeof(num1));

number

string

Var num2=”12”; alert(typeof(num2));

string

boolean

Var flag=true; alert(typeof(flag));

boolean

object

Var str=new string(); alert(typeof(str));

Var a=null; alert(typeof(a));

object

function

alert(typeof(String));

function

JavaScript中的数据类型总结的更多相关文章

  1. JavaScript 中的数据类型

    Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...

  2. javaScript中的数据类型

    一.综述 javaScript中的数据类型分为两类: 简单类型:Boolean,Number,String 引用类型:Object 其他:undefined代表变量没有初始化,null代表引用类型为空 ...

  3. Javascript中的数据类型之旅

    虽然Javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:Number.String.Boolean.Object.Udefined.Null.其中,Object属于复杂数据类型, ...

  4. 【译】Javascript中的数据类型

    这篇文章通过四种方式获取Javascript中的数据类型:通过隐藏的内置[[Class]]属性:通过typeof运算符:通过instanceof运算符:通过函数Array.isArray().我们也会 ...

  5. javascript 中检测数据类型的方法

    typeof 检测数据类型 javascript 中检测数据类型有好几种,其中最简单的一种是 typeof 方式.typeof 方法返回的结果是一个字符串.typeof 的用法如下: typeof v ...

  6. 鉴定JavaScript中的数据类型

    众所周知,JavaScript是一门弱类型的语言,但是这并不代表JavaScript中没有数据类型.JavaScript中常见的数据类型有string.number.object等等,通常我们使用ty ...

  7. JavaScript中基本数据类型之间的转换

    在JavaScript中共有六种数据类型,其中有五种是基本数据类型,还有一种则是引用数据类型.五种基本数据类型分别是:Number 数值类型.String 字符串类型.Boolean 布尔类型, nu ...

  8. JavaScript中基本数据类型和引用数据类型的区别(栈——堆)

    JavaScript中基本数据类型和引用数据类型的区别 1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据 ...

  9. 面试说:聊聊JavaScript中的数据类型

    前言 请讲下 JavaScript 中的数据类型? 前端面试中,估计大家都被这么问过. 答:Javascript 中的数据类型包括原始类型和引用类型.其中原始类型包括 null.undefined.b ...

  10. 简单回忆一下JavaScript中的数据类型

    说到JavaScript,大家都应该知道,它是一门脚本语言,也是一门弱类型语言,也是一门解析型的语言,同时也是一门动态类型的语言. 很好,至于JavaScript中数据类型.其分为基本数据类型和复杂数 ...

随机推荐

  1. 如何调整Flash与div的相互位置

    让flash置于DIV层之下的方法,让flash不挡住飘浮层或下拉菜单,让Flash不档住浮动对象或层的关键参数:wmode=opaque. 方法如下: 针对IE 在<object>< ...

  2. P1967 货车运输 树链剖分

    题目描述 AA国有nn座城市,编号从 11到nn,城市之间有 mm 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 qq 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最 ...

  3. nginx 前后分离,地址重写,url匹配中遇到的问题

    我遇到的问题: 前端用vue的路由做页面路由,后台用spring mvc做数据接口,但是遇到路由地址和接口地址无法区分的问题,导致nginx无法正确准发比如: 1)http://127.0.0.1/i ...

  4. 关于C#微信公众号开发的前言说明

    本人是昨天开始接触微信公众号开发的,昨天看一天官方文档,基本上晕乎乎的,刚开始接触这个真的有点困难,特别是C#在这方面的资料不多,不如php java方面的资料全. 所以我准备每天写一点关于C#微信开 ...

  5. HTTP、TCP、 UDP、 IP 、 Socket的关系

    TCP和UDP协议是传输协议,IP是网络层协议.传输协议和网络层协议主要解决数据如何在网络中传输,或者说TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准.TCP负责发现传输 ...

  6. (转)select、poll、epoll之间的区别

    本文来自:https://www.cnblogs.com/aspirant/p/9166944.html (1)select==>时间复杂度O(n) 它仅仅知道了,有I/O事件发生了,却并不知道 ...

  7. 使用Eclipse进行SWT编程

    使用Eclipse进行SWT编程 1. 为什么要使用SWT? SWT是IBM开发一套跨平台的GUI开发框架.为什么IBM要创建另一种GUI呢?为什么他们不使用现有的JavaGUI框架呢?要回答这些问题 ...

  8. 解决VS Code编译调试中文输出乱码

    最近尝试用VS Code配置了C和C++的编译调试环境,结果遇到了中文输出乱码问题,查阅网上竟然还没有相关问题,有怀疑是mingw中文支持问题,但最后证明是VS Code编码问题. 解决方案: 文件- ...

  9. spring boot 2.0.3+spring cloud (Finchley)9、 安全组件Spring Boot Security

    官方文档 一.Spring Security介绍 Spring Security是Spring Resource社区的一个安全组件,Spring Security为JavaEE企业级开发提供了全面的安 ...

  10. HDU 6205 尺取

    容易看出来,扩增一倍,找最长的区间就行了 /** @Date : 2017-09-11 12:43:11 * @FileName: 1012.cpp * @Platform: Windows * @A ...