JavaScript基础之基本数据类型

ECMAScript中有5种基本数据类型:Number、String、Boolean、Undefined、Null。

查看类型操作符——typeof

用于检测给定变量的数据类型,它的值包括:”number“、”string“、”boolean“、”undefined“、”object“、和”function“。

特殊的,当调用typeof null会返回“object”。

Number类型

用来表示整数和浮点数,整数可以用十进制,八进制和十六进制表示,八进制的第一位必须是零,然后八进制数字为0~7,如果超过范围,那前导零会被忽略,后面的值当作十进制解析:

var num1 = 070;   //八进制的56
var num2 = 079;   //无效的八进制数值,解析为79
var num3 = 08;    //无效的八进制数值,解析为8

八进制在严格模式下是无效的,会导致js引擎抛出错误

十六进制前两位是0x,后跟09及AF

浮点数

保存浮点数值需要的内存空间是保存整数值的两倍,因此ECMAScript会不失时机的将浮点数值转换为整数值:

var fnum1 = 1.0;   //小数点后面没有数字————解析为1
var fnum2 = 10.0;   //整数————解析为10

浮点数的 最高 精度是17位小数,但在进行算数计算时其精精确度远远不如整数。如0.1加0.2的结果不是0.3,而是0.300…0004。所以永远不要测试某个特定的浮点数值。

Infinity

用于代表超出JavaScript处理范围的数值,但Infinity依然是一个数字。js能表示的最小数值是5e-324,最大数值是1.7976931348623157e+308,分别保存在Number.MIN_VALUE和Number.MAX_VALUE中,当超过这个范围就用正负Infinity表示,可以使用isFinite()函数判定,当在最大最小范围之间则返回true。

特殊的:

  • 正数除以0为Infinituy,负数除以0为-Infinituy。0除以0为NaN。

  • infinity与任何操作数执行任何算数运算的结果,都是 Infinity

  • 将正负Infinity相加,也不会得到0,而是会得到一个叫做NaN(Not A Number)的东西

    Infinity - Infinity;    //NaN
    -Infinity + Infinity;    //NaN
    

NaN

属于数字类型,是一种特殊的数字。

  • 任何涉及NaN的操作都会返回NaN。

  • NaN与任何值都不相等,包括NaN本身

    NaN ==NaN;  //false
    

String类型

在JavaScript中,一对双引号或单引号之间的任何值都会被视为一个字符串。1是数字,“1”则是字符串。

字符串拼接:在字符串之间使用加号是一个字符串拼接操作,即:

var str = "one" + "two";   //"onetwo"

字符串转换

将一个数字字符串用于算术运算中的操作数时,该字符串会 在运算中被当做数字类型来使用。(加法运算不适用)

var str = '1';
str = str * 2;
console.log(str);   //2

所以有些时候我们想将数字字符串转换为数字只需将该字符串与1相乘即可。(用parseInt方法更好)。

当转换失败,会得到NaN

console.log(str = "123abc" * 1);   //NaN

当我们想将其他类型转换为字符串是,只需将其与空字符串连接即可。

typeof ("" + 1);   // string

还可以使用toString()方法,但null和undefined没有此方法,在不确定是不是null和undefined的情况下,可以使用转型函数String(),能够将任何类型的值转换成字符串。

Boolean类型

只包含true和false两种字面值。下表给出各种数据类型及其对应的转换规则。

数据类型转换为true的值转换为false的值
Booleantruefalse
String任何非空字符串“”(空字符串)
Number任何非零数字值0和NaN
Object任何对象null
Undefined不适用undefined

在进行一个非 布尔值上执行逻辑运算,该值会在计算期间会根据以上转换规则被转换为布尔值。

逻辑运算符优先级

!的优先级最高,然后是先&&后||

Undefined类型

在使用var声明变量但未初始化时,这个变量即使undefined。

对未初始化的变量执行typeof操作符会返回undefined值,而对为声明的变量执行typeof操作符同样也会返回undefined的值

Null类型

表示一个空对象指针,用typeof操作符检测null值会返回“object”

当我们对null和undefined执行某种算数运算时,结果截然不同

console.log(1 + undefined)//NaN
console.log(1 + null)//1

特殊的:undefined的值是派生自null值的,因此ECMA-262规定对它们的相等性测试要返回true。

console.log(null == undefined);    //true
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值