js数据类型

xiaoxiao2021-02-28  156

typeof操作符

用于检测给定变量的数据类型,有7种返回结果:

“undefined”值未定义“boolean” 布尔值“string” 字符串“number”数值或NaN“object”对象或null“function”函数“symbol”ES6新增,独一无二

一. Undefined类型

只有一个值,即undefined,使用var声明变量但未初始化时。 注意:判断一个变量的值是否为undefined

if(a == "undefined") × if(typeof a == "undefined") √ if(!a) √

二. Null类型

只有一个值,即null,表示一个空对象指针。所以使用typeof检测时会返回”object”。如果定义的变量准备用于保存对象,最好初始化为null而不是其他值。

实际上,undefined值是派生自null值的

alert(null == undefined) //返回true

三. Boolean类型

该类型只有两个值:true和false,和数字值0、1不是一回事,且区分大小写。调用转型函数Boolean()可将一个值转换为其对应的Boolean值。

数据类型转换为true的值转换为false的值BooleantruefalseString任何非空字符串“”(空串)Number任何非0数值0和NaNObject任何非空对象nullUndefined×undefined

四. Number类型

十进制八进制:第一位必须是0 (0-7)十六进制:前两位必须是0x (0-9 A-F)
浮点数 浮点数值的最高精度是17位小数,但在进行算术计算时其精度远不如整数,如0.1+0.2结果不是0.3,而是0.30000000000000004。不只js,其实像java等语言也是这样。 if(a + b == 0.3) //×,不要做这样的测试

数值范围 最小数值:Number.MIN_VALUE (5e-324) 最大数值:Number.MAX_VALUE (1.797693…..7e+308) isFinite()函数判断是否位于最小和最大数值之间; 若某次计算结果超出数值范围,则该数值会被自动转换成特殊的Infinity(正无穷,正数除以0)、-Infinity(负无穷,负数除以0)

NaN非数值

0/0会返回NaN,任何涉及NaN的操作都会返回NaN;NaN与任何值都不相等,包括NaN本身;isNaN()函数:尝试将值转换为数值,不能转换则返回true; alert(NaN == NaN);//返回false 数值转换 三种方法: 转型函数Number(),用于任何数据类型 parseInt() 专门用于字符串(常用) 如果第一个字符是数字,则继续解析,直到遇到了一个非数字字符或解析完所有后续字符 parseInt(""); //空串返回NaN parseInt("1234blue"); //1234 parseInt("22.5"); //22 parseInt("0xf"); //15

也可为parseInt()方法传入第二个参数,指定基数(多少进制)

parseInt("AF",16); //175 parseInt("AF"); //NaN - parseFloat()

只解析十进制数,所以没有第二个参数

五. String类型

把一个值转换成String类型,有如下三种办法

toString() 数值、布尔值、对象和字符串值都有toString()方法,但null和unedfined值没有 var num = 10; num.toString(); //"10" //正常用法,不必传参数,但调用数值的toString()方法时可以传参,指明进制 num.toString(2); //"1010" num.toString(8); //"12" String()转型函数 如果值有toString()方法,则调用该方法返回相应结果如果值是null,则返回”null”如果值是undefined,则返回”undefined”使用加号操作符+

六. Object类型

var o = new Object(); //Object是所有对象的基础

七. Symbol类型

var s1 = Symbol('foo'); //通过Symbol函数生成 var s2 = Symbol(); var s3 = Symbol(); s2 === s3 //false s1.toString();//可转化为字符串 //不能与其他类型的值进行计算

八. 基本数据类型和引用数据类型的区别

基本类型值:由于占据空间小,大小固定,所以存储在栈内存中,按值访问,它们的值直接存储在变量访问的位置,从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本。引用类型值:占据空间大,大小不固定,所以存储在堆内存中,按引用访问,存储在变量处的值是一个指针,指向存储对象的内存地址;从一个变量向另一个变量复制引用类型值时,复制的其实是指针,因此两个变量最终都指向同一个对象。
转载请注明原文地址: https://www.6miu.com/read-46966.html

最新回复(0)