JS基础知识之数据类型(上)
写在前面的话:
此文章转自个人博客BlackBlood:leo-cat.github.io 最近在刷《JavaScript高级程序设计》这本书以巩固JS基础,为了保证学习质量专门设置了"JavaScript基础"这个专题,而这篇博文是这个专题的第一章,复习的是JS的数据类型方面的基础知识。复制代码
关于JavaScript的数据类型
ECMAScript的数据类型:
JavaScript的数据类型主要分为两大类:简单数据类型(也称 基本数据类型 )和 复杂数据类型。 在简单数据类型和复杂数据类型下又有细分,在这里直接放一张知识框架图:
typeof
typeof这个函数的功能是用于检测变量的数据类型,这个函数所得到的返回值的数据类型则是string(字符串),此返回值的值可取:Function,Object,Number,String,Undefined,以及 Boolean typeof函数的语法为: typeof 变量 或 typeof(变量)
Undefined
当变量未被赋值时,其变量数据类型为undefined
var a; console.log(a); //undefined复制代码
当然,我们可以显示地把一个变量设置为undefined
var a = undefined; console.log(a); //undefined复制代码
不过,一般来说不存在需要显示地把一个变量设置为 undefined 值的情况,也不推荐这种做法
Null
null值代表空对象指针,如果定义的变量准备在将来用于保存对象,那么最好将改变量初始化为null而不是其他值 something important: undefined值是派生自null值的,所以undefined==null的返回结果是true
Number
Number数据类型表示整数和浮点数。其中还有一个特殊的数值:NaN(非数值) 任何涉及NaN的操作(例如NaN/100)都会返回NaN,且NaN与任何值都不相等,包括NaN本身
**isNaN(变量)**这个函数是用于检测变量是否是 “非数值” ,其返回结果为布尔型
- isNaN()对接受的数值会先尝试进行数值转换,再检测是否为非数值
var a = "213"; console.log(isNaN(a)); //false复制代码
今天,刷高程的时候遇到了一个很有趣的问题,这个问题直接暴露了我前端基础的薄弱(QwQ) 这个问题是这样的:如果我将一个变量赋值为null,请问用isNaN()检查此变量会返回什么值? 答案如下:
var a = null; console.log(isNaN(a)); //false复制代码
原来,使用isNaN()检查变量时,null会被转换为数值0
关于数值转换
有三个函数可以将非数值转换为数值,它们是:Number()、parseInt()、parseFloat()
-
Number()是将一个值强制转换为数值类型,它可以用于任何数据类型 比如:
var a = true; console.log(Number(a)); // 1复制代码
var b = "123"; console.log(Number(b)); // 123复制代码
但是,请注意一下这种情况:
var c = "123abc"; console.log(Number(c)); // Number()是无法转换含有字母的字符串的,所以最终它会返回一个 NaN复制代码
-
parseInt()和parseFloat()是专门用于把字符串转换成数值,它们会忽略字符串前面的空格,直至找到第一个非空格字符 parseInt()和parseFloat()只能转换第一个可解析字符的值为数值的字符串
console.log(parseInt("lch0824")); //NaN复制代码
即若使用parseInt()或parseFloat()需以数字开头
好了,这是前端JavaScript基础的数据类型部分的上半节,在下一节将会复习剩下的几种数据类型。 五一小长假即将过去,有没有好好利用这个小假期呢,反正我是没有2333。BlackBlood 2.0版本的更新可能要推迟到五月底了QwQ 因为本人是个计算机大一新生,上大学以前完全没接触过计算机技术,是个纯小白。所以技术博客如有错误还望各位及时指出,QQ邮箱:1010997847@qq.com复制代码