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做拖动布局的思路
May 31 Javascript
innerText和innerHTML 一些问题分析
May 18 Javascript
JavaScript打字小游戏代码
Dec 26 Javascript
Javascript页面添加到收藏夹的简单方法
Aug 07 Javascript
JS实现为表格动态添加标题的方法
Mar 31 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
Apr 06 Javascript
jQuery实现表格行上移下移和置顶的方法
May 22 Javascript
node.js中fs.stat与fs.fstat的区别详解
Jun 01 Javascript
微信小程序中显示倒计时代码实例
May 09 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
Sep 28 Javascript
微信小程序开发中var that =this的用法详解
Jan 18 Javascript
用vue设计一个日历表
Dec 03 Vue.js
用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调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
2012/08/08 PHP
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
PHP swfupload图片上传的实例代码
2013/09/30 PHP
php实现aes加密类分享
2014/02/16 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
Laravel 中获取上一篇和下一篇数据
2015/07/27 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
php基于环形链表解决约瑟夫环问题示例
2017/11/07 PHP
使用TextRange获取输入框中光标的位
2006/10/14 Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
2017/07/11 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
Vue获取页面元素的相对位置的方法示例
2020/02/05 Javascript
JavaScript实现移动端弹窗后禁止滚动
2020/05/25 Javascript
在Django的通用视图中处理Context的方法
2015/07/21 Python
python实现数据写入excel表格
2018/03/25 Python
Python设计模式之适配器模式原理与用法详解
2019/01/15 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
python实现一个简单的udp通信的示例代码
2019/02/01 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
python移位运算的实现
2019/07/15 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
正宗的澳大利亚Ugg靴子零售商:UGG Express
2020/04/19 全球购物
校班主任推荐信范文
2013/12/03 职场文书
教职工代表大会主持词
2014/04/01 职场文书
教师工作决心书
2015/02/04 职场文书
担保书范文
2019/07/09 职场文书
安装Ruby和 Rails的详细步骤
2022/04/19 Ruby