聊聊JavaScript中的简单数据类型和类型转换

关于JavaScript的基本数据类型?

  1. undefined类型
  2. Null类型
  3. Sting类型
  4. Number类型
  5. Boolean类型
我们来一个个剖析

1.Undefined类型

只有一个值,就是他本身 Undefined ,undefined英文翻译(未定义的) ,在使用关键字 var 声明一个变量的时候,如果没有赋值的话,那么这个变量的值就是 undefined
例如:

var anan
console.log(anan) // undefined

它是等价于下面代码的

var anan = undefined
console.log(anan == undefined) //true

就相当于定义了一个变量,如果没有赋予实际意义的值,就相当于赋了个undefined值,但是我们一般不会人为去加一个undefined值给一个变量,除非真有需要.

注意一点

一个变量声明没有赋值,则会默认赋值undefined,但是一个变量没有被声明,自然也不会赋值undefined
例如:

    var anan
    // var jiahui
    console.log(anan); //undefined
    console.log(jiahui); //jiahui is not defined

奇怪的是,如果用typeof去检测这两个变量,则会有不同的结果,例如:

    var anan
    // var jiahui
    console.log(typeof anna); //undefined
    console.log(typeof (jiahui)); //undefined

可以看到两者都输出了undefined,即使没有声明的变量,因为这两种变量从技术角度看有本质的区别,但是无论对那种变量 也不可能执行真正的操作.所以都是返回undefined

2.Null类型

Null类型也是一个比较特殊的值,它也只有一个值就是null 从逻辑角度上讲,null值代表一个空对象指针,这就是我们用typeof null的时候,返回的是一个object的原因

如果我们console.log(null == undefined); //true 它会输出一个true,这是为什么呢?

实际上undefined的值是由null衍生而来的,所以才有上面的true,但是他们的用法却不一样,比如我们声明一个变量,但没有必要为它显式设置undefined值,但是我们如果准备用一个变量来保存对象,我们就很有必要将它保存null值例如var a = null 这样就很明确的知道,这本变量a是用来保存对象的,也有利于区分null和undefined

3.String类型

String类型是由0或多个Unicode字符组成的字符序列,单引号或者双引号都可以用来包裹字符串

    var str1 = "sanqian"
    var str2 = 'sanqian'
    //這兩種都是有效的

讲到字符串就很有必要了解一下字符的字面量,实际就是转移序列,通俗的讲,字符串中遇到这些符号,并不是将它当做字符输出,而是有哦一些特殊的含义,或许做字符串拼接的时候有用喔.

字面量含义
\n换行
\t制表
\b空格
\r回车
\\\
\"双引号("")
\’单引号(’)

以上为部分字面量
任何字符串都有一个lenght属性,例如

  var str = '1234567'
  console.log(str.length); //7

字符串的特点:一旦声明不可该改变

 var a = 'anan'
 var a = a + 'jiahui'
 console.log(a);

这操作其实是首先创建一个能够容纳10个字符的的新字符串,赋值为ananjiahui,然后在将anan和jiahui,也就是原来的字符串销毁掉.

4.Number类型

Number类型也就是数值类型,平时最常见的就是10进制类型,其实还有二进制/八进制/十六进制等,也属于数值类型.
如果输入的是10进制就正常解析输出

var a = 10; //a的值就是10

如果是八进制,那么 八进制 字面值第一位必须是0,然后是八进制数字序列(0-7),如果后面的数字序列有超出八进制数序列的话,那么前导的0将不生效,包括本来第一位的0,而是将这个数当做10进制来解析,例如

    var num1 = 000234
    var num2 = 0123
    var num3 = 06687

    console.log(num1);//156
    console.log(num2);//83
    console.log(num3);//6678

十六进制也是类似,但是十六进制 的前面必须有0x或者0X,后面跟十六进制数字序列(0-9,A-F/a-f),

   var num1 = 0x1234
    var num2 = 0xf
    var num3 = 0x3254

    console.log(num1);
    console.log(num2);
    console.log(num3);

在进行算术运算时,所有的八进制和十六进制表示的数值,都会被转化成十进制数值
在这里插入图片描述
5.Boolean类型

Boolean类型是我们在js中使用十分频繁的类型,Boolean类型只有两个字面值,truefalse但是这两个字面值和数字1,0不是一回事,因此true不一定等于1,false不一定等于0.

  console.log(false === 0);//false
  console.log(true === 1);//false
  console.log(false == 0);//true
  console.log(true == 1);//true

虽然Boolean的字面值只有两个,但是在js中,所有类型的值都有与Boolean类型等价的值,也就是说,用Boolean去转换其他类型 ,都会转换成true/false.

数据类型转换后为true转换后为false
Booleantruefalse
String任何非空字符串空字符串
Number任何非零的数值(包括正/负无穷大)数值0
boject任何对象,比如:{}null(null只是一个逻辑上的空对象的指针)
undefinedn/aundefined

总的来说,只有0,’’,null,undefined,NaN这几个转换后是false(还有的话后面补充)
下面通过控制台show一下吧

    console.log(Boolean(''));//fasle
    console.log(Boolean('123'));//true
    console.log(Boolean(123));//true
    console.log(Boolean(0));//false
    console.log(Boolean({}));//true
    console.log(Boolean({name:'安安'}));//true
    console.log(Boolean(null));//false
    console.log(Boolean(undefined));//false
    console.log(Boolean(NaN));//fasle

关于这几种数据类型就讲到这里,下期写关于这里部分数据类型的转换.

只是小白,如有错误请指正,谢谢

前端的路很辛苦,希望与你一起前行

最后送大家一句话:

既然上了岸,就别想海里的事情了.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值