JS中的数据类型和转换
一、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中的数据类型和转换的更多相关文章
- js中的数据类型及其转换
Js中的数据类型 Js中的数据类型一共有六种,即number,string,boolean,underfine,null,object. 一,number Number数据类型指的是数字,可以为整型, ...
- js中的数据类型以及转换
Js中的数据类型 Js中的数据类型一共有六种,即number,string,boolean,underfine,null,object. 一,number Number数据类型指的是数字,可以为整型, ...
- JS中的数据类型及转换
js的六大类型 js中有六种数据类型,Boolean: 布尔类型 Number:数字(整数int,浮点数float ) String:字符串 Object:对象 (包含Array数组 ) 特殊数据类型 ...
- js中关于数据类型的转换
* 一.转化为数字*/console.log(‘123123’*1.0); /* 二.从一个值中提取另一中类型的值,并完成转化工作 */console.log(parseInt(‘1233zxhag’ ...
- js中的数据类型
JS中的数据类型: ——数字 (number)NaN ——字符串(string) ——布尔 (boolean)——函数 (function) 也是对象的一种 ——对象 (object) ...
- Javascript高级编程学习笔记(3)—— JS中的数据类型(1)
前一段时间由于事情比较多,所以笔记耽搁了一段时间,从这一篇开始我会尽快写完这个系列. 文章中有什么不足之处,还望各位大佬指出. JS中的数据类型 上一篇中我写了有关JS引入的Script标签相关的东西 ...
- Js中的数据类型--String
昼猫笔记--给你带来不一样的笔记 不止是笔记 更多的是思考 上一期咱们大概了解了下什么是JavaScript,想必大家也都知道 今天主要说下Js中的数据类型 在Js中一共分为六种数据类型 其中基本数据 ...
- 如何判断js中的数据类型?
js六大数据类型:number.string.object.Boolean.null.undefined string: 由单引号或双引号来说明,如"string" number: ...
- 如何判断js中的数据类型
如何判断js中的数据类型:typeof.instanceof. constructor. prototype方法比较 如何判断js中的类型呢,先举几个例子: var a = "iamstri ...
随机推荐
- python web开发-flask中日志的使用
Flask使用日志记录的方式: 初始化flask应用实例 在flask中使用logger,需要初始化一个flask的应用 app = Flask(__name__) 2. 调用logger 直接调用l ...
- Java设计模式-单例模式及线程安全问题
单例模式是非常常用的设计模式,他确保了一个类只有一个对象,并且这个对象是自己创建的,外界可以获取使用到这个对象. 单例模式一般有两种:懒汉式,饿汉式(其实还有一种登记式,把创建的对象放在map集合中, ...
- Shell 判断文件或文件夹是否存在
#shell判断文件夹是否存在 #如果文件夹不存在,创建文件夹 if [ ! -d "/myfolder" ]; then mkdir /myfolder fi #shell判断文 ...
- linux 的tee命令
tee 如果你在linux下希望将程序或命令运行的信息,在输入到文件的同时,也能够显示在屏幕上,你可以考虑使用tee这个命令.举个例子,直接上图 这里我调用函数aaa来完成将结果输入到aaa.log里 ...
- jQuery中ajax方法无法执行回调函数问题
最近遇到一个问题,发现使用jquery的ajax方法时,回调方法无法执行,而使用$.load()方法时却能正确返回数据.经过长时间调试最终发现是自己粗心大意,原来后台返回的是json数据,而返回的数据 ...
- java排序算法(九):归并排序
java排序算法(九):归并排序
- 用SQL语言操作数据
使用T-SQL插入数据(一)SQL是什么?Structured Query Language :结构化查询语言T-SQL:Transact-SQLT-SQL是SQL的增强版对功能进行了扩充 ...
- 移动端H5地图矢量SHP网格切分打包方案
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 与离线瓦片方案一样,同样是为了解决移动端网速和流量问题,但是却 ...
- 【MySql系列】MySql踩坑系列
问题一:远程登录报错Host '192.168.181.201' is not allowed to connect to this MySQL server 解决: 问题二:MySql access ...
- C语言程序设计基础-第1周作业-初步
1.安装带有计算机术语的翻译软件 2.在自己电脑上安装C编译器,windows系统建议安装dev-c++,其他系统自行查找. 3.加入课程小组,有任何疑问可以在小组中提问:https://group. ...