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 相关文章推荐
js玩一玩WSH吧
Feb 23 Javascript
JavaScript 撑出页面文字换行
Jun 15 Javascript
jquery(live)中File input的change方法只起一次作用的解决办法
Oct 21 Javascript
两种常用的javascript数组去重方法思路及代码
Mar 26 Javascript
JS 仿腾讯发表微博的效果代码
Dec 25 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
Dec 08 Javascript
浅析javascript 定时器
Dec 23 Javascript
js实现下拉框选择要显示图片的方法
Feb 16 Javascript
jQuery学习笔记之入门
Dec 14 Javascript
基于原生js运动方式关键点的总结(推荐)
Oct 01 Javascript
通过jQuery学习js类型判断的技巧
May 27 jQuery
JS实现打砖块游戏
Feb 14 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 第二节 数据类型之字符串类型
2012/04/28 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
基于jquery的超简单上下翻
2010/04/20 Javascript
jQuery页面滚动浮动层智能定位实例代码
2011/08/23 Javascript
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
JS与C#编码解码
2013/12/03 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
2017/09/19 Javascript
Vue父子组件双向绑定传值的实现方法
2018/07/31 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
[01:00:04]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第二局
2016/02/26 DOTA
Python 连连看连接算法
2008/11/22 Python
python实现在控制台输入密码不显示的方法
2015/07/02 Python
Python下Fabric的简单部署方法
2015/07/14 Python
python django 增删改查操作 数据库Mysql
2017/07/27 Python
django 使用全局搜索功能的实例详解
2019/07/18 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
python yield关键词案例测试
2019/10/15 Python
Python3开发环境搭建详细教程
2020/06/18 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
详解移动端HTML5音频与视频问题及解决方案
2018/08/22 HTML / CSS
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
商得四方公司面试题(gid+)
2014/04/30 面试题
酒店管理专业毕业生推荐信
2013/11/10 职场文书
预备党员转正思想汇报
2014/01/12 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
超市工作总结范文2014
2014/12/19 职场文书
2016教师党员学习心得体会
2016/01/21 职场文书
vue ref如何获取子组件属性值
2022/03/31 Vue.js