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

news/2024/7/10 22:53:13 标签: javascript, es6

关于JavaScript的基本数据类型?

  1. undefined类型
  2. Null类型
  3. Sting类型
  4. Number类型
  5. Boolean类型

我们来一个个剖析

1.Undefined类型

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

javascript">var anan
console.log(anan) // undefined

它是等价于下面代码的

javascript">var anan = undefined
console.log(anan == undefined) //true

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

注意一点

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

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

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

javascript">    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字符组成的字符序列,单引号或者双引号都可以用来包裹字符串

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

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

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

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

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

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

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

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

4.Number类型

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

javascript">var a = 10; //a的值就是10

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

javascript">    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),

javascript">   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.

javascript">  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一下吧

javascript">    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

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

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

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

最后送大家一句话:

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


http://www.niftyadmin.cn/n/1496824.html

相关文章

常用的字符串方法

前言:字符串是JavaScript中的一种基本数据类型,虽然是基本数据类型,但是却和引用类型那样拥有许多的方法,方法很多,这些方法对于操作字符串,是再好不过的,不过好方法都必然存在兼容性问题.下面我们来聊聊字符串中的 那些常用方法. 1. charAt(index) 顾名思义(字符在?)就是通…

SEO实战干货:利用高权重网站借力操作关键词快速排名!

不管是做微商、还是做项目、还是网站引流,SEO永远是最有价值并且为免费流量的聚集地。很多人都说SEO已经陌路,也有人说SEO已经越来越难做。尤其是最近的飓风算法打击采集和清风算法打击关键词堆砌让不少站长为之头疼。 很多SEO新人在求学SEO的路上都想着…

app.use中间件用法

Express框架中两个中间件一个是get方法用来接受get请求,一个是post方法用类接受post请求。 对于同一个请求路径不管是get请求还是post请求都想接受使用Express框架里的app.use(),不区分请求方式。 app.use 中间件用法 app.use 匹配所有的请求方式,可以…

数组中常用的一些方法

前言: 数组是我们学习js中常用的一种引用数据类型,在js中显得尤为重要,认识一些常用的数组方法有利于我们更快的操作数组.不用只会用for for for… 开始吧 1.pop() 该方法是用来删除数组中的最后一个元素,返回值是这个被删除的元素.会改变原数组,且看操作.[从数组中删除的元素…

【web开发】☆★之利用POI操作Excel表格系列教程【2】创建Sheet页

123456789101112131415161718192021package com.xiaoye.demo; import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Workbook; /*** * author 小夜的传说 * 2014-2-20 下午6:19:48 * 创建Sheet页 */ pub…

中间件应用

中间件应用 1.路由保护,客户端在访问需要登录的页面时,可以先使用中间件判断用户登录状态,用户如果未登录,则拦截请求,直接响应,禁止用户进入需要登录的页面 //引入express框架 const express require(e…

JavaScript中的跨域问题

前言:学习JavaScript的童鞋都知道,我们在发送网络请求,也就是我们在地址栏输入一个网址,就会自动跳转到当前网址,比如在浏览器网址输入www.baidu.com,浏览器就会自动跳转到百度的的首页 而浏览器发送网络请求需要三和基本的要素 其实完整的url路径应该是:http://www.baidu.com:…

Dell R720服务器错误代码

系统错误消息显示器中出现的系统消息,通知您系统可能出现的问题。这些消息会参考记录在系统事件日志 (SEL) 中的事件。有关 SEL 和配置系统管理设置的信息,请参阅系统管理软件文档。如果系统具有相关功能,则某些信息还会以缩略形式显示在系统…