js-数据类型
js中有5种数据类型:Undefined、Null、Boolean、Number和String。
还有一种复杂的数据类型Object,Object本质是一组无序的名值对组成的。
一、数据类型
1、undefinde类型
Undefined类型只有一个值,即undefined,使用var声明变量,但是未对初始化的,这个变量就是Undefined类型的,例子:
var i;
alert(i == undefined);//true
var i;与var i = undefined;这两句是等价的。
包含Undefined值的变量和未定义的变量是不一样的。
2、null类型
Null类型也只有一个值:null.null表示一个空对象的指针。
3、boolean类型
Boolean类型:只有两个字面量true和false。但是js中多有的变量都可以使用Boolean()函数转换成一个Boolean类型的值。
<script type="text/javascript">
var j;
console.log(j+":"+Boolean(j)); //false
var j=null;
console.log(j+":"+Boolean(j)); //false
j=50;
console.log(j+":"+Boolean(j)); //true
j=0;
console.log(j+":"+Boolean(j)); //false
j="0";
console.log(j+":"+Boolean(j)); //true
j="";
console.log(j+":"+Boolean(j)); //false
j="abc";
console.log(j+":"+Boolean(j)); //true
console.log("----------------------");
console.log("null=='':"+(null=='')); //false
console.log("null=='null':"+(null=='null')); //false
console.log("null==undefined:"+(null==undefined)); //true
alert(123==123);
alert(0==true); //false
alert(true=="true"); //false
alert(false==0); //true
alert(1+1==2); //true
alert(0===true); //false
alert(false===0); //false
</script>
4、Number类型
整数和浮点数。NaN:Not a Number(不是数字类型的数字类型)。这个数值用于本来要返回一个数值,但是却未能放回一个数值的情况,以防止报错。例如:1/0 返回的就是NaN。
NaN的特点:
1、任何涉及NaN的操作都会返回NaN。
2、NaN对任何值都不相等,包括自己NaN本身。
针对NaN特性,JS内置了isNaN()函数,来判断一个变量是不是一个数字。如果是数字,返回false,不全是数字,返回true
5、String类型
凡是用双引号或是单引号引起来的,都属于string类型
<script type="text/javascript"> var i; console.log(i+":"+String(i)); //undefined i=null; console.log(i+":"+String(i)); //null i=123; console.log(i+":"+String(i)); //123 i=true; console.log(i+":"+String(i)); //true </script>
二、typeof操作符
对一个变量进行推断变量的类型,可能返回以下字符串:
"undefined" 如果这个值,未定义或者为初始化
"boolean" 布尔值
"string" 字符串
"number" 数值
"object" 对象
"function" 函数
用法:typeof 95; 或者 typeof(95); 会返回"number".
<script>
var b=function str(){
var a=100;
alert(a);
};
console.log(b+":"+typeof(b));
var i=100;
console.log(i+":"+typeof(i));
i=1.2;
console.log(i+":"+typeof(i));
i=1.2345678;
console.log(i+":"+typeof(i));
i=-1.23;
console.log(i+":"+typeof(i));
i=1.2e8;
console.log(i+":"+typeof(i));
i=034;
console.log(i+":"+typeof(i));
i=0x12c;
console.log(i+":"+typeof(i));
i="123";
console.log(i+":"+typeof(i));
i=true;
console.log(i+":"+typeof(i));
i=false;
console.log(i+":"+typeof(i));
var j;
console.log(j+":"+typeof(j));
i=null;
console.log(i+":"+typeof(i));
var str="123abc";
alert(typeof(str++));
alert(str);
</script>
三、数据类型的转换:
1、强制数据类型的转换 : 你知道变量将会转换成什么数据类型
强制数据类型转换
1、Number():强制的把变量准换为数字类型
NaN:不是数字类型的数字类型 not a number
2、parseInt():强制的把变量准换为数字类型,而且会转换为整数
parseFloat():强制的把变量准换为数字类型,而且会转换为float单精度浮点型
<script type="text/javascript">
//alert(typeof(NaN));
var a;
console.log(a+":"+Number(a));
a=null;
console.log(a+":"+Number(a));
a="100";
//alert("100"+100);
console.log(a+":"+(Number(a)+100));
a="-100";
console.log(a+":"+(Number(a)+100));
a="";
console.log(a+":"+(Number(a)+100));
a=true;
console.log(a+":"+Number(a));
a=false;
console.log(a+":"+Number(a));
a="123abc";
console.log(a+":"+Number(a));
var i="123";
console.log(i+":"+parseInt(i));
var i="123.456";
console.log(i+":"+parseInt(i));
var i="123.abc";
console.log(i+":"+parseInt(i)); //Nan
var i="a123bc";
console.log(i+":"+parseInt(i));
var i="12a3bc";
console.log(i+":"+parseInt(i));
var i=0x10a;
console.log(i+":"+parseInt(i));
//强制将十六进制转换为十进制
var i=123.0;
console.log(i+":"+parseFloat(i));
</script>
2、隐式数据类型的转换 : 你不知道变量将会转换成什么数据类型,但是数据确实转换了
隐式数据类型的转换 :
变成字符串:+
变成数字:- * / %
变成数字:++ --
数字的比较、字符串的比较:> <
把右边的数据类型转换为布尔型:!
<script type="text/javascript">
var i="100";
console.log(i+100);
console.log(100-"3");
console.log(100*3);
console.log(100/3);
var i="3";
i++;
console.log(i); //自加和自减都会自动转换为number
//alert("3">2); //true
//alert("3">"2"); //true
if(Boolean(2)){
alert("aaaa");
}
</script>
js-数据类型的更多相关文章
- 由js apply与call方法想到的js数据类型(原始类型和引用类型)
原文地址:由js apply与call方法想到的js数据类型(原始类型和引用类型) js的call方法与apply方法的区别在于第二个参数的不同,他们都有2个参数,第一个为对象(即需要用对象a继承b, ...
- 总结的JS数据类型判定(非常全面)
用typeof 来检测数据类型 Javascript自带两套类型:基本数据类型(undefined,string,null,boolean,function,object)和对象类型. 但是如果尝试用 ...
- JavaScript学习10 JS数据类型、强制类型转换和对象属性
JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...
- JS数据类型的理解(猜测)
Js 数据类型 对于这个主题,首先来看几个问题,如果你对这几个问题很清楚的话,那就请直接跳过吧,不用接着往下看了,如果不清楚,建议你还是看看. 1)如果判断函数?function 和object的联系 ...
- web开发与设计--js数据类型,js运营商
1. js数据类型划分:号码值类型,布尔,串 由typeof能够看到什么类型的数据被详述. 举例: <span style="font-family:Microsoft YaHei;f ...
- [妙味JS基础]第四课:JS数据类型、类型转换
知识点总结 JS数据类型:number数字(NaN).string字符串.boolean布尔值.函数类型.object对象(obj.[].{}.null).undefined未定义 typeof 用来 ...
- JavaScript大厦之地基:js数据类型
一.数据和类型 俗话说物以类聚,人以群分:这里将人和物都按类别进行了区分.我们数据也一样,使用计算机我们能处理数值,也可以处理文本还可以处理图形.音频.视频等各种各样的数据,不同的数据有 ...
- JS 数据类型、赋值、深拷贝和浅拷贝
js 数据类型 六种 基本数据类型: Boolean. 布尔值,true 和 false. null. 一个表明 null 值的特殊关键字. JavaScript 是大小写敏感的,因此 null 与 ...
- 1. js数据类型_对象_函数_内存
1. js数据类型有哪些? 基本(值)类型 Number ---- 任意数值 String ---- 任意字符串 Boolean ---- true/false undefined ---- unde ...
- js数据类型隐式转换问题
js数据类型隐式转换 ![] == false //true 空数组和基本类型转换,会先[].toString() 再继续比较 ![] == [] //true ![] //false [] == [ ...
随机推荐
- 设置Tomcat编码
设置Tomcat编码 <Connector port="8080" maxThreads="150" mi ...
- Think in java 4th读书笔记__last update20151130
一周至少两章,去掉最后的并发和图形化用户界面,刚好需要2个半月才能学好.这进度感觉有点慢,所以做下调整吧,改成一个月会不会更好点^^,认认真真的把java的圣经给看一遍. 计划: 第1~6 11.17 ...
- Gradle 构建 android 应用常见问题解决指南
前言 android gradle 插件已经发展到0.5.7,同时gradle 本身也到了1.8,相比两个月前,android gradle 更快,更完善,也更好用了,为了让各位androider 早 ...
- Aapache status / apache2ctl status 总是403
默认apache2ctl status访问的是http://localhost:80/server_status 所以得搞定default这个站点,放歌html就可以了. 在default的配置里加入 ...
- Android 5.0 Uicc框架分析
已同步更新至个人blog: dxjia.cn Uicc框架 UICC框架是Android在4.1引入的,使的对卡的管理控制更加清晰.要了解这个UICC框架,需要从UiccController开始, ...
- linux 下 取进程占用内存(MEM)最高的前10个进程
# linux 下 取进程占用 cpu 最高的前10个进程ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head # linux 下 取进程占用内存 ...
- Android学习笔记----TimerTask中显示Toast的问题
今天想在TimerTask的run函数中调用Toast显示一下提示信息,却总是导致程序崩溃.可是try语句块却又无法捕获到异常,代码如下: ...... Timer timer = new Timer ...
- C#使用ICSharpCode.SharpZipLib.dll压缩文件夹和文件
大家可以到http://www.icsharpcode.net/opensource/sharpziplib/ 下载SharpZiplib的最新版本,本文使用的版本为0.86.0.518,支持Zip, ...
- HTML5应用程序缓存Application Cache详解
什么是Application Cache HTML5引入了应用程序缓存技术,意味着web应用可进行缓存,并在没有网络的情况下使用,通过创建cache manifest文件,可以轻松的创建离线应用. A ...
- Bulk Insert的用法 .
/******* 导出到excel */EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:/temp1.xls -c -q -S&quo ...