JavaScript之数据类型

106 阅读4分钟

1.为什么需要数据类型

在计算机中不同数据所占用的存储空间是不同的,为了方便与把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。

1.1变量的数据类型是什么?

变量的数据类型是根据你所赋的值来确定的。

2.数据类型

在js中数据类型分为2类,简单数据类型( Number数值, string字符串, Boolean布尔, Undefined未定义, Null空)和复杂数据类型(object数组)

数据类型说明
Number数字型,包含整数值和浮点数值(小数),比如1,0.01,-2
String字符串类型,在js中字符串都是带引号的比如“abc” ,“123”
Undefind未定义型,指的是在声明变量是没有给值,比如var a;此时的a = undefind
Null空值
Boolean布尔类型,ture或false

2.1 Number

number的三个特殊值

●Infinity .代表无穷大,大于任何数值

●-Infinity ,代表无穷小,小于任何数值

●NaN , Not a number ,代表-一个非数值,not a number

isNaN()

isNaN() 用来判断是否为非数字类型,是的话输出ture,不是的话输出false

console.log(isNaN('abc'));

image.png

2.2String

字符串型可以是引号中的任意文本,其语法为双引号“”和单引号‘’

字符串之间可以使用嵌套关系,单引号嵌套双引号或者双引号嵌套单引号,但是不能同类之间嵌套或者单双引号搭配

字符串转义符

类似HTML里面的特殊字符,字符串中也有特殊字符,我们称之为转义符转义符都是\开头的。

\n 换行    \斜杠\    \”双引号    \t tab缩进  \b空格

检测获取字符串长度length

        var cmm =  '12113213211321';
        console.log(cmm.length);

image.png

字符串的拼接

●多个字符串之间可以使用+进行拼接,其拼接方式为字符串+任何类型=拼接之后的新字符串

●拼接前会把与字符串相加的任何类型转成字 符串,再拼接成一-个新的字符串

●只要有字符串和其他类型拼接,那么最终结果的数据类型还是字符串

●字变量不要直接写到字符串里面,是通过和字符串相连的方式实现的

+号口诀:数值相加,字符相连

变量和字符串相连口诀:引引加加(例:’我‘+age+’岁了’)(age赋值为20)

console.log('我要' + '回家')
console.log(12+12);
console.log('123' + 123);
console.log('嘻嘻' + 1);

image.png

Boolean布尔型

布尔型包含两个值:ture(对)和false(错),参与加法运算时ture当做1来看,false当做0来看。

Undefind未定义

如果一个变量声明,但是没有赋值,那么它就属于Undefind数据类型(未定义数据类型)

 var a ;        //此时a为undefind
      console.log(a + 1);   //结果为nan,得出undefind和数字类相加都算作是nan
      console.log(a + 'cai')    //结果为'undefindcai',得出的结果为字符串

image.png

Null空值

var b = null;            //定义一个空值
         console.log(b + 1);      //得出结果为1
         console.log(b + 'cai');  //得出结果为'nullcai'

typeod 检测数据类型

var num = 10;  //定义num变量为10
      console.log(typeof num);  //使用tupeod检测变量num,得出结果为number
      console.log(typeof 'xixi');  //使用typeof检测‘xixi’,得出结果为string字符串
      var a;    //定义一个变量但是不赋值
      console.log(typeof a);  //typeof检测变量a为undefind
      var age = prompt('请输入你的年龄')  //用prompt创建一个用户输入框,用户输入数字后检测
      consol.log(typeof age)     //虽然说输入的是数字,但是检测结果却是string,所以得出由prompt输入的值都是字符型的
      

数据类型的转换

  • 转换为字符串类型
  1. toString() (只需要了解的方法)
var num = 10;
var str = num.toString()
console.log(typeof str)  //检测结果是string
  1. String () (仅需要了解)
var num = 10;
console.log(String(num))
console.log(typeof num)   //检测结果是string
  1. 拼接法 (重要) 从上面的案例中得出了任何数据类型只要和字符串类型相连接,那么连接后的值都是字符串类型的,也称之为隐式转换
console.log10 + 'ccc'//得出结果为10ccc,属于字符串类型
  • 转换为数字型
  1. parseInt(变量) 注意:parseInt转换后的数值是取整的--注意大小写--
 var age = prompt('输入你的年龄')   //prompt中输入的数值类型都是string
  console.log(parseInt(age));      //利用parseInt(变量)的方法将之转换为数字型
  
  console.log(parseInt('120px'));    //结果为120
  console.log(parseInt('csacasca'))   //结果为NaN

2.paseFloat(变量) 注意:paseFloat的效果和ParseInt效果基本一致,但是它可以取浮点数--注意大小写--

console.log(parseFloat('3.1415'))   //输出结果为3.1415
console.log(parseFloat('120px'));    //结果为120
console.log(parseFloat('csacasca'))   //结果为NaN

3.利用Number(变量)

console.log(Number('122'));    //输出结果为122
console.log(Number('1.22'));    //输出结果为1.22

4.利用- * / 进行隐形转换

console.log('12' - 12);    //结果为0,且0成为了number数据类型

5.转换为Boolean型

代表空、否定的值会被转换为false ,如"、0、NaN、 null、 undefined

其余值都会被转换为true

console. log (Boolean('')); // false
console.1og (Boolean(0)); // false
console . log (Boolean(NaN)); // false
console. log (Boolean (null)) ; // false
console. log (Boolean (undefined)); // false
console. log (Boolean('蔡')); // true
console. log (Boolean(12)) ; // true