ECMAScirpt中的数据类型:undefined、Null、Boolean、Number、String、Object

对一个值使用typeof操作符可能返回下列某个字符串:

number(数字)、function(函数)、Boolean(布尔值)、string(字符串)、object(对象或null)、undefined(未定义)

undefined类型:

在声明了变量但未对其加以初始化时,这个变量的值就是undefined

Null类型:

它的特殊值就是null,null值表示一个空对象指针

Boolean类型:

有两个字面值:true、false,注意true不一定等于1,false不一定等于0

要将一个值转换成对应的布尔值,可以调用转型函数Boolean()

Number类型

将一个值转换成对应的数字,Number()

例如:

    var a1='';
alert(Number(a1));//0 注意
var a2=true;
alert(Number(a2));//
var a3=[];
alert(Number(a3));//

parseInt、parseFloat将值转换成整数、小数

    var num=200.45;
if (parseInt(num)==parseFloat(num)) {
alert(num+'是整数');
}
else{
alert(num+'是小数');
};

Number()、parseInt()、parseFloat()都是显示类型转换,也叫强制类型转换

隐式类型转换有:

+                                                 200+’3’     变成字符串 2003

-、*、/、%

++、——                                         变成数字

>、<                                            注意数字的比较与字符串的比较是不一样的

NaN:

即not a number ,NaN不是数字的数字类型,NaN与其本身不相等,isNaN()判断某些值是不是数字;与Number相反,isNaN()是在Number转不成数字的情况下的数字类型

JavaScript:

        var oBtn=document.getElementById('btn1');
var oText=document.getElementById('text1');
var str=''; oBtn.onclick=function(){
str=oText.value;
//判断输入的内容是否为数字
if (isNaN(str)) {
alert(str+'不是数字');
}
else{
//判断是否为空格/*Number(str)==0*/
if (str==null) {
alert('输入的是空格');
}
else
{alert(str+'是数字');}
};
}

HTML:

<input id="text1" type="text">
<input id="btn1" type="button" value="判断文本框内的内容是否为数字">

数据类型转换的应用,我们来看一个例子:在输入框输入内容,要求判断:1、有没有输入 2、输入的是不是数字 3、不能有0在前面 4、不能是小数 5、输入的数字必须是在5位数以上、10位数以内

        var oBtn=document.getElementById('btn1');
var oText=document.getElementById('text1');
var str=''; oBtn.onclick=function(){
str=oText.value;
oText.value='';
if (str=='') {
alert('请输入内容');//没有输入内容
}
//判断输入的内容是否为数字
else if (isNaN(str)) {//不是数字
alert('请输入数字');//输入的不是数字
}
//判断输入的是否为空格
else if(Number(str)==0){
alert('空格无效');
}
else{//输入的是数字 //判断第一位数是否为0
if (str[0]=='0') {
alert('第一位是不能为0');
}
else{ //判断是否为小数
if (parseInt(str)==parseFloat(str)) { var num=parseInt(str);
//输入的数字必须在5位以上、10位以内
if ((num>9999)&&(num<999999999)) { alert('输入成功!');
}
else{
alert('输入的数字不在范围内');
};
}
else{
alert('输入的数字是小数'); } } };
}
 

HTML:

<input id="text1" type="text">
<input id="btn1" type="button" value="判断">
<ol>
<li>有没有输入</li>
<li>输入的是不是数字</li>
<li>不能有0在前面</li>
<li>不能是小数</li>
<li>输入的数字必须在5位以上、10位以内</li>
</ol>

注意:在输入框输入空格时,Number()能将其转换为数字0,所以,空格也是非NaN,用Number(str)==0来判断是否输入的为空格,此处本想用str==null代替却未达到效果,但在别的程序里用str==null来判断是否为空格却有用,欢迎大家前来指点!

JavaScript数据类型转换汇总的更多相关文章

  1. JavaScript数据类型转换

    原文转自:http://javascript.ruanyifeng.com/grammar/conversion.html#rd JavaScript是一种动态类型语言,变量是没有类型的,可以随时赋予 ...

  2. JavaScript 数据类型转换(显式与隐式)

    一.数据类型 JS中有5中简单数据类型(也称为基本数据类型):Undefined.Null.Boolean.Number.String.还有一种复杂数据类型------Object,Object本质是 ...

  3. (2017.10.16) javascript 数据类型转换与操作

    javascript 有 5 种基本数据类型:undefined.null.Boolean.String.Number,还有1 种较复杂的数据类型 Object:各种类型之间可以相互转换,其中有些有趣 ...

  4. JavaScript 数据类型转换表

    下表显示了将不同的JavaScript值转换为Number,String和Boolean的结果: 原始值 转换为Number 转换为String 转换为Boolean false 0 "fa ...

  5. javascript 数据类型转换

    javascrīpt 类型转换函数 在Javascrīpt中,Double类型和Int类型都是看作为Number对象. 1.Number转成String number.toString() Strin ...

  6. {}+[] = ? 和 []+{} = ? 浅谈JS数据类型转换

    参加公司技术嘉年华第一季(前端.服务端)的间隙,陈导问了我一个问题:{}+[] 和 []+{}两个表达式的值分别是什么?根据我的理解我觉得结果应该都是"[object Object]&quo ...

  7. JS中数据类型转换

    JS中数据类型转换汇总 JS中的数据类型分为 [基本数据类型] 数字 number 字符串 string 布尔 boolean 空 null 未定义 undefined [引用数据类型] 对象 obj ...

  8. JavaScript中数据类型转换总结

    JavaScript中数据类型转换总结 在js中,数据类型转换分为显式数据类型转换和隐式数据类型转换. 1, 显式数据类型转换 a:转数字: 1)Number转换: 代码: var a = " ...

  9. JavaScript的数据类型转换

    首先,由于JavaScript是弱类型语言(弱类型的语言的东西没有明显的类型,他能随着环境的不同,自动变换类型而强类型则没这样的规定,不同类型间的操作有严格定义,只有相同类型的变量才能操作,虽然系统也 ...

随机推荐

  1. iOS开发多线程篇 07 —GCD的基本使用

    iOS开发多线程篇—GCD的基本使用 一.主队列介绍 主队列:是和主线程相关联的队列,主队列是GCD自带的一种特殊的串行队列,放在主队列中得任务,都会放到主线程中执行. 提示:如果把任务放到主队列中进 ...

  2. Oracle之配置客户端登陆多个远程数据库

    一.引言 一直搞不明白Oracle数据库的客户端是怎么回事,怎么配置,前几天由于工作中需要用到Oracle,而且需要连接两个不同的数据库,就通过上网和请教同事终于把客户端的配置搞定了,记录之,学习之 ...

  3. 在Django中使用F()函数

    F()允许Django在未实际链接数据的情况下具有对数据库字段的值的引用.通常情况下我们在更新数据时需要先从数据库里将原数据取出后方在内存里,然后编辑某些属性,最后提交.例如这样 # Tintin f ...

  4. Javaweb开发中关于不同地方出现的绝对路径和相对路径

    1.转发和包含路径 a)以“/”开头:相对当前项目路径,即默认为http://localhost:8080/项目名/ b)不以“/”开头:相对当前Servlet路径. eg:在Aservlet中写“B ...

  5. hdu 3652数位dp

    /* 数位dp 题意:找到1-n之间包括13这个子串而且可以整除13的数 解:刚開始dp[N][N][2]这里的2用来记录是否为13表示当前位是否为13,我把上一位为1当前位为13和上一位部位1 这样 ...

  6. RTT第一个工程

    第一个RTT工程 1. 配置工程 选择芯片STM32F103C8(其包含该芯片的Flash及SRAM介绍): Jlink  SW模式 output->Debug info/Browse info ...

  7. httpd-2.2.22安装

    cgi部分共分三部分:html,cgi和服务器(httpd). 首先介绍httpd安装: 1.  软件包:httpd-2.2.22.tar.gz 系统:3.8.0-44-generic #66~pre ...

  8. Ubuntu12.04安装vim7.3

    刚开始使用Linux的新手,Ubuntu的软件中心可以直接安装vim,个人觉得那样跟windows就没啥区别了,借vim正好也学习一下Linux的编译安装方法,记录一下. Linux下有很多安装形式, ...

  9. 架构探险——第三章(搭建轻量级Java Web框架)

    解决的问题 servlet的数量会随业务功能的扩展而不断增加,我们有必要减少servlet的数量,交给controller处理,它负责调用service的相关方法,并将返回值放入request或res ...

  10. 使用inotify+rsync实现服务器间文件同步

      1. rsync 1.1 什么是rsync   rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.它使用所谓的“Rsync演算法”来使本地和远程两个主机之间的文件达到 ...