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 相关文章推荐
了不起的node.js读书笔记之node.js中的特性
Dec 22 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
Mar 18 Javascript
简介JavaScript中Math.LOG10E属性的使用
Jun 14 Javascript
AngularJS学习笔记之基本指令(init、repeat)
Jun 16 Javascript
jQuery formValidator表单验证
Jan 07 Javascript
JS代码防止SQL注入的方法(超简单)
Apr 12 Javascript
用jQuery实现圆点图片轮播效果
Mar 19 Javascript
老生常谈js中的MVC
Jul 25 Javascript
原生JS+Canvas实现五子棋游戏
May 28 Javascript
Angular 作用域scope的具体使用
Dec 11 Javascript
vue.js 嵌套循环、if判断、动态删除的实例
Mar 07 Javascript
jquery实现加载更多"转圈圈"效果(示例代码)
Nov 09 jQuery
用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快速入门教程 (小偷采集程序)
2011/06/02 PHP
比较简单的百度网盘文件直链PHP代码
2013/03/24 PHP
学习php设计模式 php实现观察者模式(Observer)
2015/12/09 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
php实现微信公众号创建自定义菜单功能的实例代码
2019/06/11 PHP
ExtJs中简单的登录界面制作方法
2010/08/19 Javascript
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
浅谈javascript中new操作符的原理
2016/06/07 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
使用vue-route 的 beforeEach 实现导航守卫(路由跳转前验证登录)功能
2018/03/22 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
微信小程序用canvas画图并分享
2020/03/09 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
js实现随机点名功能
2020/12/23 Javascript
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
wxPython框架类和面板类的使用实例
2014/09/28 Python
Python常用内置模块之xml模块(详解)
2017/05/23 Python
老生常谈Python基础之字符编码
2017/06/14 Python
python实现可逆简单的加密算法
2019/03/22 Python
Django保护敏感信息的方法示例
2019/05/09 Python
pytorch 固定部分参数训练的方法
2019/08/17 Python
PyTorch: 梯度下降及反向传播的实例详解
2019/08/20 Python
瑞士隐形眼镜和护理产品网上商店:Linsenklick
2019/10/21 全球购物
UNIX操作系统结构由哪几部分组成
2016/02/17 面试题
英文商务邀请信
2014/01/22 职场文书
公司禁烟通知
2015/04/23 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
读鲁迅先生的经典名言
2019/08/20 职场文书
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers