JS中的数据类型小结
首先说说JS数据类型的分类。分为标准型和typeof类型(即控制台打印,浏览器区分)
标准型:基本类型中有:number、string、boolean、undefined、null 复合类型:object (对象,array数组也算在里面了)。
typeof型:number、string、boolean、undefined、function、object 。
以上两者主要区分为: 公共的都有number(NAN也是number类型中的)、string、boolean、undefined、object(包含了array和null) , typeof里的有function即函数。然后Null typeof类型其实也是object。在标准型中,它是特殊的一个,叫空对象。空对象做不了属性操作同时不能添加自定义属性,也没有方法,这里需要特别注意的是它跟空数组的区别,空数组虽然也是对象类型,但不能把它跟空对象混为一谈,因为它本身是有属性和方法的,只是暂时内部没有成员而已。数组本身也是有下标有长度的,对象是不具有下标和长度一说的。
数据类型中的方法
1.parseInt 从左向右去查看需要转换的目标,如果碰到一位是非数字的,结束执行,返回之前的数字。 parseInt (100px)=100;
2. parseFloat 从左向右去查看需要转换的目标,如果碰到一位是非数字的,结束执行,返回之前的数字,可识别小数点。parseFloat (.12px)=0.12,parseFloat (13.24abc)=13.24
3.Number 强制转换 从左向右看完所有的字符,如果符合数字规则就转换它,不然就转为NaN. Number (false)=0,Number(null)=0,Number(document)=NaN,转换空字符串结果也为0,带空格的字符串也为0, 空对象则为NAN。转换undefined则为NAN.特殊情况面对数组时,如果数组为空,则结果为0,如果数组只有一个成员,则用这个成员去转换,如果数组成员为多个时,则为NAN。Number(.12)=0.12.
4.字符串转换方法 var a=123, a=a.toString()或者a=String(a)
5.Boolean 布尔值转换 它对空字符串的转换为false,空格字符串则为true。真:true,非空字符串,非0数字,非空对象,假: false, 空字符串,0,NaN,null,undefined。
6 强制类型转换,或者显示类型转换
parseInt/parseFloat/Number
7 隐式类型转换:
浏览器自己进行转换,其他类型转换成数字,主要调去Number
+,+=
1. 当加号左右两测有一位是字符串是,会把另外一也转成字符串
2. 使用+号时,两边没有字符串时,优先尝试把左右两侧都转换成数字,如果不能转换成数字就转换成字符串进行连接
-,*,/,%,-=,*=,/=,%=
运算符左右两侧转换成数字进行运算
例子:
var a = 10;
var b = "10";
console.log(a + b);
// + 号 碰到字符串的时候,就会把两侧的内容都转换成字符串,执行字符串连接
var a = 10;
var b = true;
console.log(a + b);
// + 号的两侧没有字符串,则优先转换成数字,进行+法运算
var a = 10;
var b = function(){};
console.log(a + b);
// + 号的两侧没有字符串,则优先转换成数字,进行+法运算,如果不能转换成数字,则转换成字符串进行字符串连接。
-,*,/,% 这些运算符都是只有数字运算的功能,所以在使用的时候,都会去把其他类型转换成数字。
关系运算符
<、>、<=、>=、==、!=、===、!==
比较后都会返回布尔值
== 和 ===,以及 !=和!==的区别
== 和 != 会进行隐式类型转换,把左右两侧的数据类型转换成一样的之后,再去比较
===和!== 进行比较的时候,也会比较数据类型,数据类型不会进行比较,判定两边不相等
&& 与、|| 或、! 否 返回的结果都是 true和 false
简短总结归类:
数据类型:
1. 标准划分:
基本类型: number/string/boolean/undefined/null
对象类型(复合类型):object(包含Array)
2. typeof(运算符,查看数据类型):
number:
Number.POSITIVE_INFINITY 正无穷
Number.NEGATIVE_INFINITY 负无穷
从负无穷到正无穷的数字以及NaN
string:包含在引号''中的一串字符
undefine:无定义
boolean: true、false
object: Array、object、Element、null
function : null:空对象 (null不能进行属性操作)数据类型: object
NaN: 非数字
1. NaN不等于任何东西,并且不等于它自己
2. 检测一个内容是否是NaN的时候,可以使用isNaN();
3. 数据类型:number
4. isNaN() return: true/false, isNaN隐式调用了number
强制类型转换:
强制转换为数字:
parseInt(要转换的内容)、parseFloat(要转换的内容)
从左向右一位位转换,碰到一位非数字,就把之前的内容提取出来,如果第0位就是非数字,结果NaN
Number(要转换的内容):
先看完整个内容,然后整体去转换数字
1. true 1/false 0;
2. [] 0
3. ["2"] 转换数组的第0位
4. [2,3] 转换NaN
返回值都是一个数字
强制转换为字符串:
1. 要转换的内容.toString()
2. String(要转换的内容)
强制转换为布尔值:
Boolean(要转换的内容);
1. 真: true、非0数字、非空对象、非空字符串
2. 假: false、NaN、0、null、空字符串、undefined
JS中的数据类型小结的更多相关文章
- js中的数据类型
JS中的数据类型: ——数字 (number)NaN ——字符串(string) ——布尔 (boolean)——函数 (function) 也是对象的一种 ——对象 (object) ...
- 如何判断js中的数据类型?
js六大数据类型:number.string.object.Boolean.null.undefined string: 由单引号或双引号来说明,如"string" number: ...
- 如何判断js中的数据类型
如何判断js中的数据类型:typeof.instanceof. constructor. prototype方法比较 如何判断js中的类型呢,先举几个例子: var a = "iamstri ...
- [转]如何判断js中的数据类型
原文地址:http://blog.sina.com.cn/s/blog_51048da70101grz6.html 如何判断js中的数据类型:typeof.instanceof. constructo ...
- 浅谈js中的数据类型,使用typeof获取js数据类型
JS中的数据类型 1):Undefined——值未定义 注:Undefined类型只有一个值,即特色的undefined.在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined ...
- 如何判断js中的数据类型(转)
如何判断js中的数据类型:typeof.instanceof. constructor. prototype方法比较 如何判断js中的类型呢,先举几个例子: var a = "iamstri ...
- 判断js中的数据类型
如何判断js中的数据类型:typeof.instanceof. constructor. prototype方法比较 如何判断js中的类型呢,先举几个例子: var a = "iamstri ...
- js中的数据类型及其转换
Js中的数据类型 Js中的数据类型一共有六种,即number,string,boolean,underfine,null,object. 一,number Number数据类型指的是数字,可以为整型, ...
- JS中的数据类型和转换
一.JS中的数据类型 js中的数据类型可以分为五种:number .string .boolean. underfine .null. number:数字类型 ,整型浮点型都包括. string:字符 ...
随机推荐
- Java中的数值和集合
数组array和集合的区别: (1) 数值是大小固定的,同一数组只能存放一样的数据. (2) java集合可以存放不固定的一组数据 (3) 若程序事不知道究竟需要多少对象,需要在空间不足时自动扩增容量 ...
- Github 的系统内部都在用什么开源软件?
有时候处理规模问题最好的办法就是让事情变得简单并尽你可能去避免出现这种情况.这是 GitHub 所采用的方法,林纳斯·托瓦兹(Linus Torvalds)在十年前开发了Git源代码控制工具,GitH ...
- ffmpeg.exe下载
下载链接:http://pan.baidu.com/s/1cGTe6y
- Flunetd 用于统一日志记录层的开源数据收集器
传统的日志查看方式 使用fluentd之后 一.介绍 Fluentd是一个开源的数据收集器,可以统一对数据收集和消费,以便更好地使用和理解数据. 几大特色: 使用JSON统一记录 简单灵活可插拔架构 ...
- yii2 获取从前台传过来的post数据
第一次使用yii写接口的时候,直接用了$_POST获取post数据,发现会报400错误,根本无法获取到post数据,用$_GET却能获取get数据. 纠结了很久,然后查资料,发现原来yii中默认的开启 ...
- Vivado完成综合_实现_生成比特流后发出提醒声音-原创☺
之前做技术支持时,有过客户吐槽Vivado运行时间长,又不能在完成工作后发送提醒,这两天又有人提起,所以决定写篇帖子. 大家知道,Vivado的技术文档总提及tcl,不过似乎很不招人待见,很少有人研究 ...
- C#控制台应用程序之旅游资源与线路管理系统
利用C#语言及SQL Server数据库编写的一个简化版旅游资源与线路管理系统 数据库中包含三张表:hotel表.tourist_spot表.lines表 用户分为管理员和普通用户,管理员拥有最高权限 ...
- Spring初始化ApplicationContext线程托管实际运用架构构思
今天我分享一个技术点,利用Spring初始化+线程接管进行程序启动后保持会话状态. 先来一段@test单元测试注解,后台开发的很熟悉,这是测试局部代码用的: @RunWith(SpringJUnit4 ...
- C++中加const与不加const的区别
“常量”与“只读变量”的区别. 常量肯定是只读的,例如5, "abc",等,肯定是只读的,因为常量是被编译器放在内存中的只读区域,当然也就不能够去修改它. “只读变量”则是在内存中 ...
- python基础===Python性能优化的20条建议
优化算法时间复杂度 算法的时间复杂度对程序的执行效率影响最大,在Python中可以通过选择合适的数据结构来优化时间复杂度,如list和set查找某一个元素的时间复杂度分别是O(n)和O(1).不同的场 ...