一、JS中的数据类型

js中的数据类型可以分为五种:number 、string 、boolean、 underfine 、null。

number:数字类型 ,整型浮点型都包括。

string:字符串类型,右数字字母字符串以及标点符号组成,必须放在单引号或者双引号中。

boolean:布尔类型,只有true和false两种值。

underfine:未定义,一般指的是已经声明,但是没有赋值的变量,如var a;

null:空对象类型,var a = null,和var a=""有区别;

object:对象,对象就是把一些彼此相关的属性和方法集合在一起构成的一个数据实体,在js常见的有window,document,array等。

NaN:他是表示不是数字值的特殊值,可以理解为Number的一种特殊类型,只有当在js运算中发生数据类型转换时提示,isNaN()方法是特有的对数据进行判断的 ,如果是数字返回false,不是数字返回true。

二、数据类型转换

在js中数据类型转换一般分为两种,即强制类型转换和隐式类型转换(利用js弱变量类型转换)。

强制转换:

利用js提供的函数parseInt() ,parseFloat() ,Number(),Boolean()进行数据转换,顾名思义,前两个分别是对数据进行解析转换,前者是整数,后者是浮点数。他们解析的原则是从前往后进行解析,尽其所能。若存在有能识别的数字就解析,如果第一位就不是数字则返回NaN.Number则是对整体进行判断,是数字返回数字,否则NaN.Boolean()则是对是否存在和真假进行判断进行判断。

ParseInt():

parseInt("123");//123

parseInt("+123");//123

parseInt("-123");//123

parseInt("12.3元")//12

parseInt("abc");//NaN

parseInt([1,2])//1

parseInt([1,2,4])//1

parseInt("  ");//NaN

该方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,所以要解析十六进制的值,对于含有前导的数则直接进行解析需如下调用:

parseInt("AA",16);//170

parseInt("10",2);//2

parseInt("10",8);//8

parseInt("10",10);//10

//含有前导

parseInt("0xAA")//170

//如果二进制数包含前导0,那么最好采用基数2,不然默认以十进制解析

parseInt("010");   //returns   10

parseInt("010",2);//2         parseInt("010",   8);   //returns   8          parseInt("010",   10);   //returns   10

parseInt(null)//NaN

ParseFloat():

parseFloat("123");//123

parseFloat("-123");//123

parseFloat("+123");//123

parseFloat("12.34");//12.34

parseFloat("12.35元")//12.35

parseFloat("12.23.122");//12.23

parseFloat("av");//NaN

parseFloat("0xAA");//0

parseFloat("0110");//110

parseFloat([1]);//1

parseFloat([2,3]);//2

parseFloat([]);//NaN

parseFloat(null)//NaN

Number():

alert(123);//123

Number("123");//123

Number("+123");//123

Number("12.3");//12.3

        alert(12.3元);//false

Number(true);//1

Number("12.3.4");//NaN

Number(" ");//0

Number("abc");//NaN

Number([]);//0

Number([1]);//1

Number([1,2]);//NaN

Number(new Object());//NaN

Number(null);//0

Boolean():他不会对引号里面的数字进行自动进行转换。

Boolean(1) ;//true

Boolean(0);//false

Boolean("1");//true

Boolean("0");//true

Boolean("abc");//true

Boolean('');//false

Boolean('   ');//true

Boolean([])//true

Boolean([1])//true

Boolean(null)//false

而String()则是传入的所有数据类型转换为字符串。

//和toString()方法的区别是

typeof String(null)//String

typeof String(undefined)//String

隐式类型转换:

隐式类型转换和java中大不相同,在js中数据类型不严格,没有浮点和整型,这里的隐式类型转换指的是字符串和数值类型之间的转换,在进行字符串和数字之间进行减乘除取模运算或者进行比较运算时,他会自动把字符串转换为数字。转换数字的默认方法是调用Number(),进行加法运算则是将数字看成字符串进行拼接. var x = "123";

var y = 121;

alert(x+y);//"123121;

alert(x-y);//2

alert(x*y);//14883

alert(x/y);//1.016528256198346

alert(x%y);//2

alert(x>y);//true

alert(x==y);//false

alert("123a">y);//false诡异

js只一中弱类型的脚本语言,语法相对与java等高级编程语言来说不够严格,所以对于它的数据类型和之间的转换很容易混淆,以上仅是个体会,如有错误,欢迎指出!

JS中的数据类型和转换的更多相关文章

  1. js中的数据类型及其转换

    Js中的数据类型 Js中的数据类型一共有六种,即number,string,boolean,underfine,null,object. 一,number Number数据类型指的是数字,可以为整型, ...

  2. js中的数据类型以及转换

    Js中的数据类型 Js中的数据类型一共有六种,即number,string,boolean,underfine,null,object. 一,number Number数据类型指的是数字,可以为整型, ...

  3. JS中的数据类型及转换

    js的六大类型 js中有六种数据类型,Boolean: 布尔类型 Number:数字(整数int,浮点数float ) String:字符串 Object:对象 (包含Array数组 ) 特殊数据类型 ...

  4. js中关于数据类型的转换

    * 一.转化为数字*/console.log(‘123123’*1.0); /* 二.从一个值中提取另一中类型的值,并完成转化工作 */console.log(parseInt(‘1233zxhag’ ...

  5. js中的数据类型

    JS中的数据类型: ——数字  (number)NaN ——字符串(string) ——布尔  (boolean)——函数  (function)     也是对象的一种 ——对象  (object) ...

  6. Javascript高级编程学习笔记(3)—— JS中的数据类型(1)

    前一段时间由于事情比较多,所以笔记耽搁了一段时间,从这一篇开始我会尽快写完这个系列. 文章中有什么不足之处,还望各位大佬指出. JS中的数据类型 上一篇中我写了有关JS引入的Script标签相关的东西 ...

  7. Js中的数据类型--String

    昼猫笔记--给你带来不一样的笔记 不止是笔记 更多的是思考 上一期咱们大概了解了下什么是JavaScript,想必大家也都知道 今天主要说下Js中的数据类型 在Js中一共分为六种数据类型 其中基本数据 ...

  8. 如何判断js中的数据类型?

    js六大数据类型:number.string.object.Boolean.null.undefined string: 由单引号或双引号来说明,如"string" number: ...

  9. 如何判断js中的数据类型

    如何判断js中的数据类型:typeof.instanceof. constructor. prototype方法比较 如何判断js中的类型呢,先举几个例子: var a = "iamstri ...

随机推荐

  1. 【Python】 uuid生成唯一ID

    uuid uuid是128位的全局唯一标识符(univeral unique identifier),通常用32位的一个字符串的形式来表现.有时也称guid(global unique identif ...

  2. .NET Core快速入门教程 5、使用VS Code进行C#代码调试的技巧

    一.前言 为什么要调试代码?通过调试可以让我们了解代码运行过程中的代码执行信息,比如变量的值等等.通常调试代码是为了方便我们发现代码中的bug.ken.io觉得熟练代码调试技巧是成为合格程序员的基本要 ...

  3. linux --> fork()详解

    fork()详解 一个进程,包括代码.数据和分配给进程的资源.fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个 ...

  4. PHP Session 常用的函数

    我们在前面的文章里面讲到session的原理和最佳实践,感到意犹未尽.现在再来聊下PHP Session用到的几个相关的函数. session_start() session_start() 会创建新 ...

  5. docker 学习之一:docker 安装

    核心概念1. 镜像是一个只读的模板类似于安装系统用到的那个iso文件我们通过镜像来完成各种应用的部署. 2. docker容器镜像类似于操作系统而容器类似于虚拟机本身.它可以被启动.开始.停止.删除等 ...

  6. Tomcat优化内存以及连接数

    公司的一个服务器使用Tomcat6默认配置,在后台一阵全点击服务器就报废了,查了一下就要是PERMSIZE默认值过小造成(16-64) TOMCAT_HOME/bin/catalina.sh 添加一行 ...

  7. GitHub趋势:Vue.js大有超过TensorFlow之势!

    2月,Github上第二受欢迎的项目是Flutter.Flutter的第一个测试版本是作为2018年世界移动通信大会的一部分而开始的. Flutter是一款移动UI框架,旨在帮助开发人员在iOS和An ...

  8. 【福大软工】 W班级总成绩排名2

    评分链接: 选题报告    结对第二次作业     需求分析    随堂测试 总分排名:

  9. 每日冲刺报告——Day1(Java-Team)

    第一天报告(11.2  周四) 团队:Java-Team 成员: 章辉宇(284) 吴政楠(286) 陈阳(PM:288) 韩华颂(142) 胡志权(143) github地址:https://git ...

  10. 20162302 实验三《敏捷开发与XP实践》实验报告

    实 验 报 告 课程:程序设计与数据结构 姓名:杨京典 班级:1623 学号:20162302 实验名称:敏捷开发与XP实践 实验器材:装有IdeaU的联想拯救者80RQ 实验目的与要求:1.代码的格 ...