前端开发总结:JavaScript(内置类型)

javascript中的七大内置类型

在javascript中存在七种内置类型,其中6中是es5的,在es6中被新增加了一个symbol。

  1. 空值(null)
  2. 未定义(undefined)
  3. 字符串(string)
  4. 数值(number)
  5. 对象(object)
  6. 布尔(boolean)
  7. 符号(symbol)

1. null

一个单值数据类型,只有一个值null,从逻辑上说,它属于一个空值对象,所以:
typeof null == object
存在但是没有使用的变量的值就是 null,例如
let a = null
undefined其实派生于null ,所以:
undefined == null //true 但是这两者完全不同的使用场景

2.undefined

第二个单值数据类型,只有一个值undefined,是指定义了但是还没有赋值的变量
let a;
typeof a //undefined

注意一点针对没有声明的变量,typeof的值也是undefined
typeof c //undefined

3.string

字符串用于表示零个或是多个16位Unicode字符组成的字符串。

> 3.1 字符字面量(转义字符)

字符字面量表

> 3.2 字符串的特点

字符串一旦被创建就不能改变
let s = "hello";
s = s +"world"

上边的代码发生的事件是,首先创建了一个字符串,填入“hello”,然后创建一个10个字符空间,填入s,”world”,这样的拼接方式也是旧版本的浏览器的字符串拼接慢的原因

>3.3 字符串转化

两个方法toString(),String()
8. toString()
被调用者是否有这个方法,undefined,null都没有这个方法,注意如果是number类型的数据在转化时可以传入转化后的进制,默认是10进制

let s= 10;
s.toString(10); //10
s.toString(16); //a
s.toString(8); //12
s.toString(3);//101

9. String()
在不知道是undefined或是null的情况下,使用String()是最合理的,避免了error的发生,

let a ;
a.toString(); // Cannot read property 'toString' of undefined
String(a);// undefined

null同上

4.number

在javascript 中的一般用来表示数值的有整形以及浮点类型,几种进制类型:十进制(10),十六进制(0x10),八进制(010),以及二进制(0b10)

>4.1浮点数

浮点数使用的是17位精度,所以占用的空间相对较大,在计算时候的精确度远远不如整数。ECMA在存储的时候对部分浮点数进行了处理,例如1.0这样的数据会处理成1这样的整数,还有一个就是永远不要测试某个特定的浮点数的值,如下

let a = 0.1;
let b = 0.2;
a + b ==0.3 ;//false

>4.2数值范围

由于内存限制,在javascript中并不能表示说有的数值,在(Number.MIN_VALUE,Number.MAX_VALUE)之间,超过Number.MAX_VALUE的是+Infinity,小于Number.MIN_VALUE的是-Infinity,同时可以使用isFinite()来进行检测是否为有限数

isFinite(1); //ture

>4.3NaN(not a number)

  1. X/0 不报错
    在其他的编程语言中,任何数除以0最终的结果会报错,但是在JavaScript中 任何数除以0的值为NaN

    1/0 ;//NaN
  2. NaN特点
    1.任何数对NaN操作,结果都是NaN
    2.NaN与任何数都不相等,包括它自己,NaN != NaN
    针对这样的特性只有通过isNaN()来判断是不是not a number,在判断前这个函数会将之转化为数值,任何不能转化为数值的结果都是true;
    alert(isNaN(NaN)); //true
    alert(isNaN("10")); //false(可以被转换成数值 10)
    alert(isNaN(true)); //false(可以被转换成数值 1)
    alert(isNaN("blue")); //true(不能转换成数值)

>4.4 数值转化

三个方法:Number() , parseInt(), parseFloat()

  1. Number()
    Number()函数的转换规则如下。
    如果是 Boolean 值,true 和 false 将分别被转换为 1和 0。

    如果是数字值,只是简单的传入和返回。

    如果是 null 值,返回 0。

    如果是 undefined,返回 NaN。

    如果是字符串,遵循下列规则:
    如果字符串中只包含数字(包括前面带正号或负号的情况),则将其转换为十进制数值,即”1” 会变成 1,”123”会变成 123,而”011”会变成 11(注意:前导的零被忽略了);
    如果字符串中包含有效的浮点格式,如”1.1”,则将其转换为对应的浮点数值(同样,也会忽 略前导零);
    如果字符串中包含有效的十六进制格式,例如”0xf”,则将其转换为相同大小的十进制整 数值;
    如果字符串是空的(不包含任何字符),则将其转换为 0;
    如果字符串中包含除上述格式之外的字符,则将其转换为 NaN。
    如果是对象,则调用对象的 valueOf()方法,然后依照前面的规则转换返回的值。如果转换 的结果是 NaN,则调用对象 的 toString()方法,然后再次依照前面的规则转换返回的字符 串值

  2. parseInt()

    转换为整数型,相对于Nuuber来说更加合理,同时还可以指定转换后的进制
    var num1 = parseInt("1234blue"); // 1234
    var num3 = parseInt("0xA"); // 10(十六进制数)
    var num3 = parseInt("10", 10); //10 (按十进制解析)
    var num4 = parseInt("10", 16); //16 (按十六进制解析)

  3. parseFloat()
    parseFloat只是对十进制的进行解析,所以没有第二个参数,parseFloat转换没有小数的数据,返回来的是整数

    let a = 10.0;
    parseFloat(a);//10

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值