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学习之一个简易的日历控件
Mar 24 Javascript
D3.js实现饼状图的方法详解
Sep 21 Javascript
bootstrap confirmation按钮提示组件使用详解
Aug 22 Javascript
详解 vue.js用法和特性
Oct 15 Javascript
微信小程序实现人脸识别
May 25 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
Nov 10 Javascript
Vue源码解析之数组变异的实现
Dec 04 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
Dec 20 Javascript
vue鼠标悬停事件实例详解
Apr 01 Javascript
从0到1搭建element后台框架优化篇(打包优化)
May 12 Javascript
ant design vue datepicker日期选择器中文化操作
Oct 28 Javascript
uni-app 微信小程序授权登录的实现步骤
Feb 18 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获取随机数组列表的方法
2014/11/13 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
2017/08/03 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
Apache+PHP+MySQL搭建PHP开发环境图文教程
2020/08/06 PHP
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
Javascript window对象详解
2014/11/12 Javascript
jQuery提示效果代码分享
2014/11/20 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
jQuery使用之设置元素样式用法实例
2015/01/19 Javascript
JS给Textarea文本框添加行号的方法
2015/08/20 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
使用store来优化React组件的方法
2017/10/23 Javascript
Vue项目中使用Vux的安装过程
2018/05/01 Javascript
vue better scroll 无法滚动的解决方法
2018/06/07 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
nodejs文件夹深层复制功能
2019/09/03 NodeJs
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
python实现的AES双向对称加密解密与用法分析
2017/05/02 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
pandas删除指定行详解
2019/04/04 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
2020/01/02 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
python selenium操作cookie的实现
2020/03/18 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
python 判断一组数据是否符合正态分布
2020/09/23 Python
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
Lookfantastic阿联酋官网:英国知名美妆护肤购物网站
2020/05/26 全球购物
运动会获奖感言
2014/02/11 职场文书
超市理货员岗位职责
2014/07/04 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
Python基础之字符串格式化详解
2021/04/21 Python