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 相关文章推荐
JavaScript对象、属性、事件手册集合方便查询
Jul 04 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
Jan 11 Javascript
JQuery中如何传递参数如click(),change()等具体实现
Apr 28 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
Jun 17 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
Aug 13 Javascript
jQuery插件Timelinr 实现时间轴特效
Oct 04 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
Jan 21 Javascript
JS变量及其作用域
Mar 29 Javascript
vue-cli之router基本使用方法详解
Oct 17 Javascript
Vue中Axios从远程/后台读取数据
Jan 21 Javascript
6种JavaScript继承方式及优缺点(小结)
Feb 06 Javascript
原生JS实现拖拽效果
Dec 04 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中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
php递归json类实例
2014/12/02 PHP
PHP带节点操作的无限分类实现方法详解
2016/11/09 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
2017/06/02 PHP
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
用js代码和插件实现wordpress雪花飘落效果的四种方法
2014/12/15 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
jQuery前端开发35个小技巧
2016/05/24 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
vue 做移动端微信公众号采坑经验记录
2018/04/26 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
详解小程序缓存插件(mrc)
2018/08/17 Javascript
Angular事件之不同组件间传递数据的方法
2018/11/15 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
详解Django通用视图中的函数包装
2015/07/21 Python
Python 处理数据的实例详解
2017/08/10 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
Python函数和模块的使用总结
2019/05/20 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
2020/07/28 Python
CSS3 animation实现简易幻灯片轮播特效
2016/09/27 HTML / CSS
电子商务专业自我鉴定
2013/12/18 职场文书
运动会100米解说词
2014/01/23 职场文书
乌鸦喝水教学反思
2014/02/07 职场文书
颂军魂爱军营演讲稿
2014/09/13 职场文书
golang中的空接口使用详解
2021/03/30 Python
如何利用map实现Nginx允许多个域名跨域
2021/03/31 Servers
《暗黑破坏神2:重制版》本周进行第一轮A测 目前可官网进行申请报名
2021/04/07 其他游戏
python迷宫问题深度优先遍历实例
2021/06/20 Python
Python字符串常规操作小结
2022/04/03 Python
如何通过简单的代码描述Angular父组件、子组件传值
2022/04/07 Javascript