浅谈js基本数据类型和typeof


Posted in Javascript onAugust 09, 2016

JavaScript数据类型是非常简洁的,它只定义了6中基本数据类型

•null:空、无。表示不存在,当为对象的属性赋值为null,表示删除该属性

•undefined:未定义。当声明变量却没有赋值时会显示该值。可以为变量赋值为undefined

•number:数值。最原始的数据类型,表达式计算的载体

•string:字符串。最抽象的数据类型,信息传播的载体

•boolean:布尔值。最机械的数据类型,逻辑运算的载体

•object:对象。面向对象的基础

#当弹出一个变量时:

var aa;alert(aa); //变量定义,弹出undefined

alert(aa);    //变量未定义,undefined , 未定义的变量也是undefined


#当判断一个变量是否存在时:

var str;if( str == undefined )  //变量定义,可以这样判断

if( str == undefined )   //变量未定义,报错ReferenceError: str is not defined

所以,当判断一个变量是否不存在时,用 if( typeof str == undefined )

typeof:

alert(typeof 1);        // 返回字符串"number" 
alert(typeof "1");       // 返回字符串"string" 
alert(typeof true);       // 返回字符串"boolean" 
alert(typeof {});        // 返回字符串"object" 
alert(typeof []);        // 返回字符串"object " 
alert(typeof function(){});   // 返回字符串"function" 
alert(typeof null);       // 返回字符串"object" 
alert(typeof undefined);    // 返回字符串"undefined"

你会发现:JavaScript解释器认为null是属于object数据类型的一种特殊形式,而function(){}是function类型,也就是说函数也是一种基本数据类型,而不是对象的一种特殊形式。

实际上,在JavaScript中,函数是一个极容易引起误解或引发歧义的数据类型,它可以是独立的函数类型,又可以作为对象的方法,也可以被称为类或构造器,还可以作为函数对象而存在等。

所以,在《JavaScript权威指南》中把function被看做是object基本数据类型的一种特殊对象,另外《悟透JavaScript》和《JavaScript高级程序设计》也把函数视为对象,而不是一种基本数据类型。但是在《JavaScript语言精髓与编程实践》中却把function视为一种基本数据类型,而把null视为object类型的一种特殊形式。至于谁对谁错,看来只有根据具体情况而定了。

以上这篇浅谈js基本数据类型和typeof就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 日历提醒系统( 兼容所有浏览器 )
Apr 07 Javascript
javascript实现网页背景烟花效果的方法
Aug 06 Javascript
微信小程序 window_x64环境搭建
Sep 30 Javascript
探讨AngularJs中ui.route的简单应用
Nov 16 Javascript
javascript添加前置0(补零)的几种方法
Jan 05 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
May 17 Javascript
vue的状态管理模式vuex
Nov 30 Javascript
vue如何通过id从列表页跳转到对应的详情页
May 01 Javascript
利用npm 安装删除模块的方法
May 15 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
Sep 27 Javascript
vue基于viewer实现的图片查看器功能
Apr 12 Javascript
Vue开发环境中修改端口号的实现方法
Aug 15 Javascript
js中判断变量类型函数typeof的用法总结
Aug 09 #Javascript
详解js实现线段交点的三种算法
Aug 09 #Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
Aug 09 #Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
Aug 09 #Javascript
引用jquery框架后出错的解决方法
Aug 09 #Javascript
js实现常用排序算法
Aug 09 #Javascript
VC调用javascript的几种方法(推荐)
Aug 09 #Javascript
You might like
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
最令PHP初学者们头痛的十四个问题
2007/01/15 PHP
PHP下10件你也许并不了解的事情
2008/09/11 PHP
php随机抽奖实例分析
2015/03/04 PHP
农历与西历对照
2006/09/06 Javascript
jquery DOM操作 基于命令改变页面
2010/05/06 Javascript
从零开始学习jQuery (十) jQueryUI常用功能实战
2011/02/23 Javascript
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
JavaScript中的对象的extensible属性介绍
2014/12/30 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
JS获取鼠标相对位置的方法
2016/09/20 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
vue深入解析之render function code详解
2017/07/18 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
基于element-ui的rules中正则表达式
2018/09/04 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
微信小程序实现购物车小功能
2020/12/30 Javascript
python获取目录下所有文件的方法
2015/06/01 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
2019/06/25 Python
python判断链表是否有环的实例代码
2020/01/31 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
pycharm安装及如何导入numpy
2020/04/03 Python
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
描述内存分配方式以及它们的区别
2016/10/15 面试题
C#可否对内存进行直接的操作
2015/02/26 面试题
自动化专业个人求职信范文
2013/12/30 职场文书
动员大会主持词
2014/03/20 职场文书
入股协议书范本
2014/04/14 职场文书
自强之星事迹材料
2014/05/12 职场文书
竞聘上岗演讲稿
2014/05/16 职场文书
普通话宣传标语
2014/06/26 职场文书
2015年个人实习工作总结
2014/12/12 职场文书