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 相关文章推荐
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
Oct 11 Javascript
使用jQuery的将桌面应用程序引入浏览器
Nov 19 Javascript
一行代码告别document.getElementById
Jun 01 Javascript
如何用JavaScript动态呼叫函数(两种方式)
May 03 Javascript
JS拖拽插件实现步骤
Aug 03 Javascript
AngularJs验证重复密码的方法(两种)
Nov 25 Javascript
bootstrap导航栏、下拉菜单、表单的简单应用实例解析
Jan 06 Javascript
JavaScript实现简单的树形菜单效果
Jun 23 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
Feb 28 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
Aug 08 Javascript
jQuery选择器之基本过滤选择器用法实例分析
Feb 19 jQuery
JavaScript基于SVG的图片切换效果实例代码
Dec 15 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
多人战的战术与战略
2020/03/04 星际争霸
js下函数般调用正则的方法附代码
2008/06/22 PHP
PHP验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
降低PHP Redis内存占用
2017/03/23 PHP
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
ajax无刷新动态调用股票信息(改良版)
2008/11/01 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
jQuery中用dom操作替代正则表达式
2014/12/29 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
瀑布流的实现方式(原生js+jquery+css3)
2020/06/28 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
2016/11/21 Javascript
JavaScript中Math对象的方法介绍
2017/01/05 Javascript
浅析Angular2子模块以及异步加载
2017/04/24 Javascript
Vue调试神器vue-devtools安装方法
2017/12/12 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
2019/01/16 Javascript
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
如何利用python查找电脑文件
2018/04/27 Python
详解Python 解压缩文件
2019/04/09 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
python实现上传文件到linux指定目录的方法
2020/01/03 Python
python用什么编辑器进行项目开发
2020/06/17 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
html5使用canvas实现弹幕功能示例
2017/09/11 HTML / CSS
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
服装设计专业自荐信
2014/06/17 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA
在Python 中将类对象序列化为JSON
2022/04/06 Python
PostgreSQL怎么创建分区表详解
2022/06/25 PostgreSQL