虽然学习js有一段时间了,但是对js的基础语法却是有些生疏。最近在看jquery源码,决定随带总结一些基础的语法知识。今天总结一下数据类型和typeof,这在写js的时候,是不得不知道的知识。

  数据类型:

  js有5种基本的数据类型:undefined,Null,Boolean,Number,string;和一种复杂的数据类型:object,js不支持所有自定义的数据类型,所以所有变量的值都是以上类型。

  typeof:它的出现用来检测变量的数据类型,它可能的值有6种。

  undefined---如果这个值未被定义(变量未声明||只声明未被初始化||声明初始化为undefined)

  boolean,number,string,object,function.

  undefined数据类型:这种数据类型只有一个值undefined。

//第一个例子
var m1;//只声明了,未被初始化
var m2=undefined;//声明初始化undefined
alert(m1);//undefined
alert(m2);//undefined
alert(typeof m1);//undefined
alert(typeof m2);//undefined
//第一个例子显示,变量声明之后,自动赋值undefined且数据类型为undefined //第二个例子
alert(n);//n未声明,产生错误
alert(typeof n);//undefined
//第二个例子显示,未被定义的变量值的数据类型为undefined

  Null数据类型:这种数据类型也只有一个值null,null它表示一个空对象指针。在定义变量的时候,如果意在存储对象,则应该像这样var n=null;可以区分null和undefined。

var n=null;
alert(typeof n);//object

  Boolean数据类型:这种数据类型只有两个值:true和false,区分大小写。虽然只有这两个值,但是所有类型的值都可以与这两个值进行转换(可以用Boolean()转型函数),这在if控制语句中非常有用。转换关系如下:

数据类型 转化为true 转化为false
Boolean true false
undefined undefined
object 任何对象 null
string 任何非空字符 空字符
number 任何非零数字 null和NaN

  Number数据类型:

  其中比较特别的是NaN(非数值,是一个比较特殊的数值),此数值表示一个本来要返回数值的操作数未返回的情况。并且它有两个比较奇怪的特点:1.任何关于NaN的操作都会返回NaN,2.NaN与任何值都不相等,包括它本身。正因为它的这些特性,ECMAscript定义了一个函数isNaN(),通过这个函数,我们就可以对任何数据类型的值进行判断,以此来确定这些值是否是数值。在判断的之前,isNaN()函数会先对能进行转换的值进行转换(Boolean数据类型的true,false可以分别转换为1,0;字符串的数值字符串可以转换为相应的数值),而判断过程中,是数值的会返回false,不是数值的会返回true。如下

alert(isNaN("MYname"));//true
alert(isNaN(""))//false,字符串会先转换为数值
alert(isNaN(true))//false,会转换为1
alert(isNaN(NaN))//true

  string数据类型:

var str1 = "myname",
str2 = ""; typeof str1 //string
typeof str2 //string

  object引用类型:

var vs1 = [],
vs2 = Object; typeof vs1;// object
typeof vs2;//function

在检测引用类型的时候,情况会有点复杂,将在以后的文章中说到

  

数据类型和typeof操作符的更多相关文章

  1. js基础回顾-数据类型和typeof怎么用

    js的基本数据类型有六种,undefined.null.number.string.boolean.object. 未定义        空      数字        字符串    布尔     ...

  2. JavaScript中数据类型和typeof返回的数据类型

    除了上图,要注意三点:1.symbol是ES6中新增的数据类型 2.typeof(null)结果是Object 3.typeof(Object)和typeof(Array)的结果是function,因 ...

  3. js的数据类型和typeof数据类型

    js的数据类型:number,string,null,undefined,Boolean,object typeof数据类型:number,string,object,function,undefin ...

  4. Java数据类型和MySql数据类型对应一览

    类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             VARCHAR L+N VARCHAR java.lang.String 12   CHAR N ...

  5. Sql Server中的数据类型和Mysql中的数据类型的对应关系(转)

    Sql Server中的数据类型和Mysql中的数据类型的对应关系(转):https://blog.csdn.net/lilong329329/article/details/78899477 一.S ...

  6. SQL数据类型和C#数据类型间的转换

    今天看到SQL数据类型和C#数据类型间的转换,前人留下的. <?xml version="1.0" encoding="utf-8" ?> < ...

  7. MySql数据类型和Java数据类型对应一览

    类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             VARCHAR L+N VARCHAR java.lang.String 12   CHAR N ...

  8. Java数据类型和MySql数据类型对应一览 [转]

    类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             VARCHAR L+N VARCHAR java.lang.String 12   CHAR N ...

  9. mysql数据类型和java数据类型匹配

    Java数据类型和MySql数据类型对应一览 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             VARCHAR L+N VARCHAR java. ...

随机推荐

  1. MyEclipse中将项目导出jar包,以及转化成EXE文件

    1.对于项目如何导出jar文件,和生成exe,解答目录如下: 首先生成jar文件,单击项目名称CF-users(这是我的协同过滤项目文件名称)右击--->Export如下图: 单击下一步 Sel ...

  2. MVC — 第 6 天

    7 天玩转 ASP.NET MVC — 第 6 天   目录 第 1 天 第 2 天 第 3 天 第 4 天 第 5 天 第 6 天 第 7 天 0. 前言 欢迎来到第六天的 MVC 系列学习中.希望 ...

  3. 十天学Linux内核之第三天---内存管理方式

    原文:十天学Linux内核之第三天---内存管理方式 昨天分析的进程的代码让自己还在头昏目眩,脑子中这几天都是关于Linux内核的,对于自己出现的一些问题我会继续改正,希望和大家好好分享,共同进步.今 ...

  4. hdu 3460 Ancient Printer

    Problem Description The contest is beginning! While preparing the contest, iSea wanted to print the ...

  5. 开源搜索引擎Iveely 0.8.0

    开源搜索引擎Iveely 0.8.0 这是一篇博客,不是,这是一篇开源人的心酸和喜悦,没有人可以理解我们的心情,一路的辛酸一路的艰辛,不过还好,在大家的支持下,总算是终见天日,谢谢那些给予我们无私帮助 ...

  6. WPF - Visual调试工具Snoop

    原文:WPF - Visual调试工具Snoop Snoop经过很长一段时间,最近更新到支持NET 3.5了,它是一个WPF运行时对Visual UI调试的一个工具,最近我用过它调试修改过一个bug, ...

  7. poj3070--Fibonacci(矩阵的高速幂)

    Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9650   Accepted: 6856 Descrip ...

  8. centos下mysql 最新版最终成功安装!备份一下几个关键地方

    我本来仅仅是为了搭建简单的LAMP环境,亲自己主动手,却发现有这么多的问题会发生.(by default7#zbphp.com) 非常多地方给的安装Mysql的提示是通过yum一键安装.shell命令 ...

  9. animation渐进实现点点点等待效果实例页面

    CSS代码: .ani_dot { font-family: simsun; } :root .ani_dot { display: inline-block; width: 1.5em; verti ...

  10. Linux下tomcat管理查看控制台|杀死tomcat进程

    查看控制台 # tail -f catalina.out 脚本执行权限chmod u+x *.sh #看是否已经有tomcat在运行了 ps -ef |grep tomcat #如果有,用kill; ...