javascript基本数据类型及类型检测常用方法小结


Posted in Javascript onDecember 14, 2016

本文实例讲述了javascript中的基本数据类型以及类型检测的几种方法。分享给大家供大家参考,具体如下:

1.JS中有6种基本的数据类型,JS中的所有操作都是基于这五种基本类型得到的。

(1)Object

对象类型

(2)number

数字类型

(3)String

字符串类型

(4)null

(5)underfined

(6)boolean

布尔类型:true或者为false

I)JS中的数据类型转换(非严格模式下)

“12”==12 // true 在非严格模式下,字符串可以向数字转换
true==1 // true 布尔值在等号两边会尝试转换为0或者1
“1”==true //true
null==underfined //true
new Object()==new Object() //true
NaN==NaN //false

II)JS中的数据类型转换(非严格模式下)

上述中的等号均不成立

注:特别的如果为基本类型中的string或者number,在必要的情况下,可以将string或者number转化为对象object类型,转化不是持续的。

比如:

var x=”hello” ; alert(a.length) // 5

数据类型中的隐式转化补充:

“32”+32 //转化为string
"32"-32 //转化为number

JS中的类型检测方法

(1)通过typeof来进行类型检测

我们先来看几个例子:

typeof 100 —->number

typeof “hello” ——>string

typeof true —?> boolean

typeof Number ——>function

typeof new Object()——->object

typeof Object ——->function

typeof null ——?>object

typeof underfined ——?>underfined

总结:如果右边的是基本类型,则typeof会尝试得到最基本的类型,比如number,string等等,如果是函数名,那么则返回function,这里Object,Number,String,等等都可以看成函数名,如果右边是一个基本的对象,则返回object(返回的都是小写哦)。

注:我们发现typeof null,结果返回了object,这是一个很早之前的BUG,一直沿用至今

试用范围:如果通过typeof来判断类型,适用于判定基本类型,或者判断是否为函数(function)。

2.instanceof

同样举例来说明:

[1,2] instanceof Array ——> true

“1,2” instanceof Array ——->false

总结:instanceof 会沿着原型链查找,如果左边对象的原型链上,具有右边的对象,那么会返回true,并且注意只用于判断扩展的对象类型(非number,string等)

比如:

instanceof Number —?> false
"hell"  instanceof String  ------>string

补充:instanceof的右边必须是函数,或者是构造器,如果不是则会报错,检测的是左边的对象的原型链上,是否有右边函数的prototype。

3.Object.prototype.toString

通过对象原型上的toSting方法,同样也可以判断类型,我们来举例子:

Object.prototype.toString.apply([]) ——>[object Object]

Object.prototype.toString.apply(function(){}) —->[object Function]

Object.prototype.toString.apply(Number) ——->[object Function]

Object.prototype.toString.apply(String) ——?>[object Function]

Object.prototype.toString.apply(null) ———?>[object Null]

Object.prototype.toString.apply(undefined)?>[object Undefined]

使用类型:原生对象和基本类型

此外还有

(4)constructor

(5)duck type等

更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
关于viewport,Ext.panel和Ext.form.panel的关系
May 07 Javascript
javascript 树控件 比较好用
Jun 11 Javascript
JavaScript 常用函数库详解
Oct 21 Javascript
Highcharts 非常实用的Javascript统计图demo示例
Jul 03 Javascript
Jquery和angularjs获取check框选中的值的方法汇总
Jan 17 Javascript
VUEJS实战之修复错误并且美化时间(2)
Jun 13 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
Aug 25 Javascript
Vue resource中的GET与POST请求的实例代码
Jul 21 Javascript
如何用Node写页面爬虫的工具集
Oct 26 Javascript
详解JavaScript的数据类型以及数据类型的转换
Apr 20 Javascript
layui 数据表格复选框实现单选功能的例子
Sep 19 Javascript
详谈vue中router-link和传统a链接的区别
Jul 22 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
Dec 14 #Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Dec 14 #Javascript
实例解析angularjs的filter过滤器
Dec 14 #Javascript
微信小程序 input输入框控件详解及实例(多种示例)
Dec 14 #Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
Dec 14 #Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Dec 14 #Javascript
javascript中的try catch异常捕获机制用法分析
Dec 14 #Javascript
You might like
迁移PHP版本到PHP7
2015/02/06 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
js模拟点击以提交表单为例兼容主流浏览器
2013/11/29 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
JavaScript鼠标特效大全
2016/09/13 Javascript
JS 获取HTML标签内的子节点的方法
2016/09/21 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
浅谈angularJS2中的界面跳转方法
2018/08/31 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
微信小程序 下拉刷新及上拉加载原理解析
2019/11/06 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
Python lambda函数基本用法实例分析
2018/03/16 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
python+selenium+Chrome options参数的使用
2020/03/18 Python
Pygame的程序开始示例代码
2020/05/07 Python
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
动员大会主持词
2014/03/20 职场文书
4s店市场专员岗位职责
2014/04/09 职场文书
乔丹名人堂演讲稿
2014/05/24 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
北大自主招生自荐信
2015/03/04 职场文书
2015年乡镇工会工作总结
2015/05/19 职场文书
2016春季幼儿园小班开学寄语
2015/12/03 职场文书
2019邀请函格式及范文
2019/05/20 职场文书
CSS3 制作的彩虹按钮样式
2021/04/11 HTML / CSS
Feign调用传输文件异常的解决
2021/06/24 Java/Android