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 08 Javascript
JS解析XML文件和XML字符串详解
Apr 17 Javascript
jQuery实现转动随机数抽奖效果的方法
May 21 Javascript
深入解析JavaScript的闭包机制
Oct 20 Javascript
jQuery实现的简单提示信息插件
Dec 08 Javascript
javascript中apply、call和bind的使用区别
Apr 05 Javascript
动态加载JavaScript文件的两种方法
Apr 22 Javascript
angularjs 源码解析之scope
Aug 22 Javascript
Vue.js 表单控件操作小结
Mar 29 Javascript
动态内存分配导致影响Javascript性能的问题
Dec 18 Javascript
vue 全局环境切换问题
Oct 27 Javascript
原生JavaScript实现五子棋游戏
Nov 09 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 getsiteurl()函数
2009/09/05 PHP
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
PHP PDOStatement::bindValue讲解
2019/01/30 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
通过javascript设置css属性的代码
2009/12/28 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器
2013/06/21 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
从零学JS之你需要了解的几本书
2014/05/19 Javascript
node.js Web应用框架Express入门指南
2014/05/28 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
vue开发心得和技巧分享
2016/10/27 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
bootstrap Table实现合并相同行
2019/07/19 Javascript
jQuery Ajax async=>false异步改为同步时,解决导致浏览器假死的问题
2019/07/22 jQuery
Vue表单控件数据绑定方法详解
2020/02/05 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
python二叉树遍历的实现方法
2013/11/21 Python
python 弧度与角度互转实例
2020/04/15 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
2020/06/15 Python
Python数据分析库pandas高级接口dt的使用详解
2020/12/11 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
CSS3实现瀑布流布局与无限加载图片相册的实例代码
2016/12/22 HTML / CSS
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
类成员函数的重载、覆盖和隐藏区别
2016/01/27 面试题
shell的种类有哪些
2015/04/15 面试题
如何做好总经理助理
2013/11/12 职场文书
应届毕业生求职信范例分享
2013/12/17 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
小学学习雷锋活动总结
2014/07/03 职场文书
浅析MySQL如何实现事务隔离
2021/06/26 MySQL